Optimization apparatus,mounting apparatus and electronic part mounting system

ABSTRACT

An optimization apparatus capable of efficiently placing an electronic component. An optimization unit ( 203 ) determines a first assignment to the placement apparatus and calculates a first placement time required for placing all the electronic components assigned to the placement apparatus by the first assignment onto a circuit board by the placement apparatus. The optimization unit selects two placement apparatuses among a plurality of placement apparatuses, selects a type of an electronic component assigned for the selected placement apparatus, determines a second assignment by interchanging two selected times assigned, calculates a second placement time required for placing all the electronic components assigned to the placement apparatus by the second assignment onto the circuit board by the placement apparatus, and employs the one of the first assignment and the second assignment which has a smaller placement time.

TECHNICAL FIELD

The present invention relates to a technique for placing electroniccomponents on a circuit board.

BACKGROUND ART

Various apparatuses and methods have been proposed for improvingplacement efficiency in placement apparatuses that place electroniccomponents to circuit boards. (Japanese Laid-Open Patent Application No.9-81603, Japanese Laid-Open Patent Application No. 10-209697, andJapanese Laid-Open Patent Application No. 10-2096829)

As high productivity in placement apparatuses is increasingly pursued,disparity between manufacturers is disappearing. Instead, productivityis greatly dependant on the degree to which waste can be eliminated inoperation of equipment. In light of this, in addition to dividingcomponents evenly between placement apparatuses and reducing wastebetween pieces of equipment, the importance of optimization softwarethat ensures high productivity without waste in each individualapparatus has come to be recognized, and there are demands to performplacement of electronic components even more effectively.

DISCLOSURE OF THE INVENTION

In order to respond to these demands, the present invention has anobject of providing an optimization apparatus, a optimization method, anoptimization program, a recording medium on which an optimizationprogram is stored, a placement apparatus, and an electronic componentassembly system, for placing electronic components even moreeffectively.

In order to achieve the stated object, the present invention is anoptimization apparatus that optimizes a placement order in whichelectronic components are placed on a circuit board by two or moreplacement apparatuses, wherein a first assignment of each type ofelectronic component to the placement apparatuses has been determined inadvance, and a first placement time has been calculated in advance foreach placement apparatus, each first placement time being a timerequired for the placement apparatus to place electronic componentsassigned thereto according to the first assignment on the circuit board,the optimization apparatus including: an assignment unit operable toselect two of the placement apparatuses, select, for each of the twoselected placement apparatuses, one type of electronic component thathas been assigned to the placement apparatus, and determine a secondassignment by swapping the two selected types of electronic componentsbetween the two placement apparatuses; a calculation unit operable tocalculate, for each of the two placement apparatuses, a second placementtime required for the placement apparatus to place on the circuit boardthe electronic components assigned thereto according to the secondassignment; and an assignment adoption unit operable to adopt, byreferring to the first placement time and the second placement time, oneof the first assignment and the second assignment that has a smallerplacement time.

Furthermore, in order to achieve the stated object, the presentinvention is an optimization apparatus in an electronic componentplacement system further including two or more placement apparatusesthat place electronic components on a circuit board, the optimizationapparatus optimizing a placement order in which the electroniccomponents are placed on the circuit board by the placement apparatusesand including: a first assignment unit operable to assign each type ofelectronic component to one of the placement apparatuses, therebydetermining a first assignment for each type of electronic component; afirst calculation unit operable to calculate, for each placementapparatus, a first placement time required for the placement apparatusto place all electronic components assigned thereto according to thefirst assignments on the circuit board; a second assignment unitoperable to select two placement apparatuses from the placementapparatuses, select, for each of the two selected placement apparatuses,one type of electronic component that has been assigned to the placementapparatus, and determine a second assignment by swapping the twoselected types of electronic components between the two placementapparatuses; a second calculation unit operable to calculate, for eachof the two placement apparatuses, a second placement time required forthe placement apparatus to place all electronic components assignedthereto according to the second assignment on the circuit board; and anadoption determination unit operable to determine adoption of one of thefirst assignment and the second assignment that enables a shortestplacement time, by comparing a greatest first placement time and agreatest second placement time from among the first placement times andthe second placement times calculated for the two placement apparatusesselected for interchanging by the second assignment unit.

Here, the first assignment unit may include: a component count storagesub-unit operable to store, for each type of electric component, acomponent count of electronic components of the type; a placement timecalculation sub-unit operable to calculate (i) for one electricalcomponent of each type and for each placement apparatus, a referenceplacement time required for the placement apparatus to place theelectrical component, and (ii) for each type of electrical component andfor each placement apparatus, using the component count of the type, aplacement time required for the placement apparatus to place allelectronic components of the type on the circuit board; and anassignment determination sub-unit operable to determine, using theplacement times calculated for each of the placement apparatuses foreach type of electronic component, an assignment of electroniccomponents of the type to one of the placement apparatuses.

Here, the second assignment unit may assign a type of electroniccomponent, from among the types of electronic components, that can onlybe placed by a particular placement apparatus to the particularplacement apparatus, the assignment being performed with priority overother types of electronic components.

Here, the second assignment unit may assign a type of electroniccomponent that has, from among the placement times calculated for eachplacement apparatus and each type of electronic component, a placementtime smaller than a predetermined value, to a placement apparatus thatis upstream-most among placement apparatuses having a placement timesmaller than a predetermined value, the assignment being performed withpriority over other types of electronic components and other placementapparatuses.

Here, each of the first calculation unit and the second calculation unitmay include: a component count storage sub-unit operable to store, foreach electronic component type assigned to the placement apparatuses, acomponent count that indicates how many electronic components of thetype are to be placed on the circuit board; a total time calculationsub-unit operable to calculate, for each placement apparatus, a totalplacement time indicating a total time for placing all electroniccomponents assigned to the placement apparatus; and a placement timecalculation sub-unit operable to calculate, for each placement apparatusand each type of electronic component, a placement time for allelectronic components of the type assigned to the placement apparatus,by multiplying the calculated total placement time by the componentcount of the type of electronic component, and then dividing by acomponent count of all electronic components assigned to the placementapparatus, wherein the first calculation unit and the second calculationunit set the respective calculated placement times as the firstplacement times and the second placement times, respectively.

Here, each of the first calculation unit and the second calculation unitmay include a request output sub-unit, tact calculation sub-units equalin number to the placement apparatuses, and a placement time receptionsub-unit, the tact calculation sub-units corresponding respectively tothe placement apparatuses, wherein the request generation sub-unitoutputs to each placement apparatus, a type identifier identifying atype of electronic component, and a component count of electroniccomponents assigned to the placement apparatus, each tact calculationsub-unit calculates, based on the output type identifier and componentcount, a time required for the corresponding placement apparatus toplace the electronic components on the circuit board, and outputs thecalculated placement time, the placement time reception sub-unitreceives each placement time, and the first calculation unit and thesecond calculation unit set the respective received placement times asthe first placement times.

Here, each of the first calculation unit and the second calculation unitmay include a request output sub-unit and a placement time receptionsub-unit, and each placement apparatus may include a tact calculationunit, wherein the request generation sub-unit outputs to each placementapparatus, a type identifier identifying a type of electronic component,and a component count of electronic components assigned to the placementapparatus, each tact calculation unit calculates, based on the outputtype identifier and component count, a time required for the placementapparatus to place the electronic components on the circuit board, andoutputs the calculated placement time, the placement time receptionsub-unit receives each placement time, and the first calculation unitand the second calculation unit set the respective received placementtimes as the first placement times.

Here, each of the first calculation unit and the second calculation unitmay include a request output sub-unit, conversion sub-units, tactcalculation sub-units, reverse conversion sub-units, and a placementtime reception sub-unit, the conversion sub-units, the tact calculationsub-units and the reversion conversion sub-units being equal in numberto and corresponding respectively to the placement apparatuses, whereinthe request generation sub-unit outputs to each placement apparatus, atype identifier identifying a type of electronic component, and acomponent count of electronic components assigned to the placementapparatus, each conversion unit coverts the output type identifier andcomponent count to a format compatible with the corresponding placementapparatus, each tact calculation sub-unit calculates, based on theconverted type identifier and component count, a time required for thecorresponding placement apparatus to place the electronic components onthe circuit board, and outputs the calculated placement time, eachreverse conversion sub-unit converts the output placement time to aformat compatible with the optimization apparatus, the placement timereception sub-unit receives the converted placement times, and the firstcalculation unit and the second calculation unit set the respectivereceived, converted placement times as the first placement times.

Here, the optimization apparatus may be for changing movement speedinformation relating to the circuit board when the electronic componentsare placed thereon, and may further include: a movement speed storageunit operable to store circuit board movement speed information for eachtype of electronic component; an assignment storage unit operable tostore, for each type of electronic component, an assignment of the typeof electronic component type to one of the placement apparatuses; aselection unit operable to select, from the plurality of placementapparatuses, two adjacent placement apparatuses; an extraction unitoperable to extract slowest movement speed information having a slowestmovement speed among electronic component types assigned to a placementapparatus that is located upstream-most of the two selected placementapparatuses; an extraction unit operable to extract movement speedinformation having a faster movement speed than the extracted slowestmovement speed information from among electronic component typesassigned to a placement apparatus that is located downstream-most of thetwo selected placement apparatuses; and a replacement unit operable toreplace the extracted movement speed information with the slowestmovement speed information, in the movement speed information storageunit.

Here, the optimization apparatus may be for optimizing an electroniccomponent placement order used in a placement apparatus in which afeeder that supplies at least one electronic component of at least onetype of electronic component moves to a suction position of a placementhead, and the placement head picks up electronic components from thefeeder and places the electronic components on a circuit board, theoptimization apparatus further may include: a first selection unitoperable to select one of the electronic components and set theelectronic component as a first electronic component; a calculation unitoperable to select electronic components other than the first electroniccomponent one at a time, set the selected electronic component as asecond electronic component, and calculate (a) a head movement timerequired for the placement head of the placement apparatus to moverelatively from a position where the first electronic component is to beplaced to a position where the second electronic component is to beplaced, (b) a feeder movement time required for a feeder that suppliesthe second electronic component to move to the placement head suctionposition if the second electronic is to be placed, and (c) a returnmovement time required for a feeder that supplies the first electroniccomponent to move to the placement head suction position after thesecond electronic component is placed; and a selection unit operable toselect, based on the head movement times, feeder movement times andreturn movement times calculated for all electronic components otherthan the first electronic component, an electronic component from amongall the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.

Here, the optimization apparatus may be for optimizing an electroniccomponent placement order used in a placement apparatus that placeselectronic components on a circuit board by repeatedly performing tasksuntil all electronic components to be placed have been placed, each taskbeing composed of: a feeder that supplies at least one electriccomponent of at least one type of electronic component moving to asuction position of a placement head that includes at least one nozzle,and the placement head picking up at least one electronic component fromthe feeder and placing the at least one picked up electronic componenton a circuit board, the optimization apparatus may further include: aninformation storage unit operable to store task information for eachtask, each task information including (a) a placement order ofelectronic components in the task, (b) placement positions, each ofwhich indicates where a different one of the electronic components is tobe placed, and (c) a feeder position indicating a position of the feederthat supplies the electronic components; a first generation unitoperable to generate an X coordinate list by rearranging the taskinformation for all tasks so as to be in descending order of Xcoordinate of placement position of an electronic component last in theplacement order in each task information; a second generation unitoperable to generate a Z coordinate list by rearranging the taskinformation so as to be in ascending order of a greatest feeder positionin each task information; and an assignment unit operable to alternatelyselect a task from a top of the X coordinate list and a top of the Zcoordinate list in the stated order, and assign each task a position inthe placement order according to an order in which the tasks wereselected.

Here, the optimization apparatus may be for optimizing an electroniccomponent placement order used in a placement apparatus in which afeeder that supplies at least one electronic component of at least onetype of electronic component move to a suction position of a placementhead, and the placement head picks up electronic components from thefeeder and places the electronic components on a circuit board, theoptimization apparatus may further include: a plane generation unitoperable to generate, for each electronic component type, an imaginarycomponent plane that includes positions in which electronic componentsof the type are to be placed, and arrange the generated component planesin a predetermined order; a rearrangement unit operable to rearrange thecomponent planes; an optimum path generation unit operable to generate,within each component plane, an optimum path that connects thecomponents on the component plane; and a 3D path generation unitoperable to generate a 3D path that connects the component planes, byconnecting the path within each component plane with the paths withinother component planes.

Here, the first assignment unit may include: a component count storagesub-unit operable to store, for each type of electric component, acomponent count of the type of electric component; a placement timecalculation sub-unit operable to calculate (a) one of (i) with respectto each type of electronic component and each placement apparatus, areference placement time required for the placement apparatus to placeone electronic component of the type on the circuit board, and (ii) withrespect to each type of electronic component and each placementapparatus, a reference placement time required for the placementapparatus to perform a task to place one of the type of electroniccomponent on the circuit board, the task being a series of operationsfrom picking up the electronic component through to placing theelectronic component, and (b) with respect to each type of electroniccomponent and each placement apparatus and with use of the componentcount, a placement time required for the placement apparatus to placeall electronic components of the type on the circuit board; and anassignment determination sub-unit operable, for each placement apparatusand for each type of electronic component, to assign, with use of thecalculated placement times, the type of electronic component to one ofthe placement apparatuses.

Here, the first assignment unit may include: a component count storagesub-unit operable to store, for each type of electric component, acomponent count of the type of electric component; a placement timecalculation sub-unit operable to calculate (a) one of (i) with respectto each type of electronic component and each placement apparatus, areference placement time required for the placement apparatus to placeone electronic component of the type on the circuit board, and (ii) withrespect to each type of electronic component and each placementapparatus, a reference placement time required for the placementapparatus to perform a task to place one of the type of electroniccomponent on the circuit board, the task being a series of operationsfrom picking up the electronic component through to placing theelectronic component, and (b) with respect to each type of electroniccomponent and each placement apparatus and with use of a tool thatsimulates operations of placement equipment based on the component countof each type of electronic component, a placement time required for theplacement apparatus to place all electronic components of the type onthe circuit board; and an assignment determination sub-unit operable,for each placement apparatus and for each type of electronic component,to assign, with use of the calculated placement times, the type ofelectronic component to one of the placement apparatuses.

Here, the optimization apparatus may be for changing tact informationrelating to the circuit board when the electronic components are placedthereon, and may further include: a tact storage unit operable to storecircuit board tact information for each type of electronic component; anassignment storage unit operable to store, for each type of electroniccomponent, an assignment of the type of electronic component type to oneof the placement apparatuses; a selection unit operable to select, fromthe plurality of placement apparatuses, two adjacent placementapparatuses; an extraction unit operable to extract slowest tactinformation having a slowest tact among electronic component typesassigned to a placement apparatus that is located upstream-most of thetwo selected placement apparatuses; an extraction unit operable toextract tact information having a faster tact than the extracted slowesttact information from among electronic component types assigned to aplacement apparatus that is located downstream-most of the two selectedplacement apparatuses; and a replacement unit operable to replace theextracted tact information with the slowest tact information, in thetact information storage unit.

Furthermore, the present invention is an electronic component placementsystem composed of at least one placement apparatus that placeselectronic components on a circuit board, including: the at least oneplacement apparatus, and the optimization apparatus, wherein the atleast one placement apparatus places the electronic components to thecircuit board in accordance with an assignment determined by theoptimization apparatus.

Furthermore, the present invention is a placement apparatus the placeselectronic components on a circuit board, wherein the placementapparatus places the components on the circuit board in accordance withan assignment determined by the optimization apparatus.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration apparatus for changing movement speed information relating tothe circuit board when the electronic components are placed thereon, andincluding: a movement speed storage unit operable to store circuit boardmovement speed information for each type of electronic component; anassignment storage unit operable to store, for each type of electroniccomponent, an assignment of the type of electronic component type to oneof the placement apparatuses; a selection unit operable to select, fromthe plurality of placement apparatuses, two adjacent placementapparatuses; an extraction unit operable to extract slowest movementspeed information having a slowest movement speed among electroniccomponent types assigned to a placement apparatus that is locatedupstream-most of the two selected placement apparatuses; an extractionunit operable to extract movement speed information having a fastermovement speed than the extracted slowest movement speed informationfrom among electronic component types assigned to a placement apparatusthat is located downstream-most of the two selected placementapparatuses; and a replacement unit operable to replace the extractedmovement speed information with the slowest movement speed information,in the movement speed information storage unit.

Here, the optimization apparatus is for changing tact informationrelating to the circuit board when the electronic components are placedthereon, and further includes: a tact storage unit operable to storecircuit board tact information for each type of electronic component; anassignment storage unit operable to store, for each type of electroniccomponent, an assignment of the type of electronic component type to oneof the placement apparatuses; a selection unit operable to select, fromthe plurality of placement apparatuses, two adjacent placementapparatuses; an extraction unit operable to extract slowest tactinformation having a slowest tact among electronic component typesassigned to a placement apparatus that is located upstream-most of thetwo selected placement apparatuses; an extraction unit operable toextract tact information having a faster tact than the extracted slowesttact information from among electronic component types assigned to aplacement apparatus that is located downstream-most of the two selectedplacement apparatuses; and a replacement unit operable to replace theextracted tact information with the slowest tact information, in thetact information storage unit.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration apparatus for changing tact information relating to thecircuit board when the electronic components are placed thereon, andincludes: a tact storage unit operable to store circuit board tactinformation for each type of electronic component; an assignment storageunit operable to store, for each type of electronic component, anassignment of the type of electronic component type to one of theplacement apparatuses; a selection unit operable to select, from theplurality of placement apparatuses, two adjacent placement apparatuses;an extraction unit operable to extract slowest tact information having aslowest tact among electronic component types assigned to a placementapparatus that is located upstream-most of the two selected placementapparatuses; an extraction unit operable to extract tact informationhaving a faster tact than the extracted slowest tact information fromamong electronic component types assigned to a placement apparatus thatis located downstream-most of the two selected placement apparatuses;and a replacement unit operable to replace the extracted tactinformation with the slowest tact information, in the tact informationstorage unit.

Furthermore, the present invention is a computer-readable recordingmedium storing thereon circuit board movement speed information relatingto different types of electronic component, and storing thereon movementspeed information that has been replaced by the information generationapparatus.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus in which a feeder that supplies at least one electroniccomponent of at least one type of electronic component moves to asuction position of a placement head, and the placement head picks upelectronic components from the feeder and places the electroniccomponents on a circuit board, the optimization apparatus including: afirst selection unit operable to select one of the electronic componentsand set the electronic component as a first electronic component; acalculation unit operable to select electronic components other than thefirst electronic component one at a time, set the selected electroniccomponent as a second electronic component, and calculate (a) a headmovement time required for the placement head of the placement apparatusto move relatively from a position where the first electronic componentis to be placed to a position where the second electronic component isto be placed, (b) a feeder movement time required for a feeder thatsupplies the second electronic component to move to the placement headsuction position if the second electronic is to be placed, and (c) areturn movement time required for a feeder that supplies the firstelectronic component to move to the placement head suction positionafter the second electronic component is placed; and a selection unitoperable to select, based on the head movement times, feeder movementtimes and return movement times calculated for all electronic componentsother than the first electronic component, an electronic component fromamong all the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.

Here, the selection unit includes an operation sub-unit operable, foreach electronic component other than the first electronic component, tocalculate a value that is a total of (a) twice the return time and (b)the feeder movement time, and adopt the greater of the calculated headmovement time and the calculated value; and an electronic componentselection sub-unit operable to select, as a next electronic component tobe placed after the first electronic component, an electronic componentcorresponding to a smallest value among all the values adopted by theoperation sub-unit for the electronic components other than the firstelectronic component.

Here, the placement apparatus includes a rotary placement head, and theselection unit selects one electronic component based on the calculatedhead movement times, feeder movement times, return movement times, and arotary placement head half-rotation time.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus that places electronic components on a circuit board byrepeatedly performing tasks until all electronic components to be placedhave been placed, each task being composed of: a feeder that supplies atleast one electric component of at least one type of electroniccomponent moving to a suction position of a placement head that includesat least one nozzle, and the placement head picking up at least oneelectronic component from the feeder and placing the at least one pickedup electronic component on a circuit board, the optimization apparatusincluding: a task information storage unit operable to store taskinformation for each task, each task information including (a) aplacement order of electronic components in the task, (b) placementpositions, each of which indicates where a different one of theelectronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents; a first generation unit operable to generate an X coordinatelist by rearranging the task information for all tasks so as to be indescending order of X coordinate of placement position of an electroniccomponent last in the placement order in each task information; a secondgeneration unit operable to generate a Z coordinate list by rearrangingthe task information so as to be in ascending order of a greatest feederposition in each task information; and an assignment unit operable toalternately select a task from a top of the X coordinate list and a topof the Z coordinate list in the stated order, and assign each task aposition in the placement order according to an order in which the taskswere selected.

Here, the optimization apparatus further includes: a calculation unitoperable to calculates a first total movement amount that indicates adistance that the head moves if all tasks are executed in the placementorder assigned by the assignment unit; a task selection unit operable toselect two tasks; an interchange unit operable to swap the two selectedtasks with each other in the placement order; a calculation unitoperable to calculate a second total movement amount that indicates adistance that the head moves if all tasks are executed in the placementorder in which the interchange unit has interchanged the two tasks; andan adoption sub-unit operable to adopt a placement order of all tasksthat corresponds to a smaller of the first total movement amount and thesecond total movement amount.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus in which a feeder that supplies at least one electroniccomponent of at least one type of electronic component move to a suctionposition of a placement head, and the placement head picks up electroniccomponents from the feeder and places the electronic components on acircuit board, the optimization apparatus including: a plane generationunit operable to generate, for each electronic component type, animaginary component plane that includes positions in which electroniccomponents of the type are to be placed, and arrange the generatedcomponent planes in a predetermined order; a rearrangement unit operableto rearrange the component planes; an optimum path generation unitoperable to generate, within each component plane, an optimum path thatconnects the components on the component plane; and a 3D path generationunit operable to generate a 3D path that connects the component planes,by connecting the path within each component plane with the paths withinother component planes.

Here, the rearrangement unit includes an extraction sub-unit operable toextract, for each component plane, an exit electronic component, theexit electronic component being an electronic component for which theplacement head movement time from the exit component on an originalcomponent plane that is the component plane, to an electronic componenton a next component plane that is another component plane, is within afeeder movement time; a calculation sub-unit operable to calculate, foreach original component plane and each next component plane, an exitcandidate count that is a total number of exit electronic components,and calculate, for each original component plane, an exit candidatetotal that is a total number of exit electronic components; a selectionsub-unit operable to select an original component plane having asmallest exit candidate total and set the selected original componentplane as a first component plane, and select a next component plane thathas a greatest exit candidate count with respect to selected the firstcomponent plane, and set the selected next component plane as a secondcomponent plane; and a component plane interchange sub-unit operable tointerchange the first component plane and the second component plane ina component plane order.

Here, the extraction unit sets a square-shaped area, each side of thesquare-shaped area being a length corresponding to a movement time of afeeder, and a center of the square-shaped area being a position where anexit electronic component is to be placed, and, if an electroniccomponent on the next component plane falls within the set square area,judges that the placement head movement time is less than the feedermovement time.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the structure of an assembly system 1;

FIG. 2 is a perspective drawing showing the main compositional elementsof a high-speed placement machine 124;

FIG. 3A is a perspective drawing of the main components of amultifunction placement machine 125, and shows electronic componentsbeing placed;

FIG. 3B is a perspective drawing of the main components of amultifunction placement machine 125, and shows electronic componentsbeing absorbed;

FIG. 4 is a block diagram showing the structure of an optimizationapparatus 200;

FIG. 5 shows an example of the data structure of a component table;

FIG. 6 shows an example of the data structure of a tact calculationcorrespondence table;

FIG. 7 shows an example of the data structure of a placement apparatustype table;

FIG. 8 shows an example of the data structure of a tact table;

FIG. 9 shows an example of a tact table to which a placement time hasbeen written by an optimization unit 203;

FIG. 10 shows an example of the data structure of a component placementtable;

FIG. 11 shows an example of the component placement table to which agroup of a component name and a placement time has been written;

FIG. 12 shows an example of the component placement table to which anext group of a component name and a placement time has been written;

FIG. 13 shows an example of the component placement table when divisionof components by the optimization unit 203 has ended;

FIG. 14 shows an example of the tact table obtained by tact tablecalculation processing by the optimization unit 203;

FIG. 15 is a flowchart showing an outline of operations performed by theoptimization apparatus 200;

FIG. 16 is a flowchart showing operations for provisional calculation ofthe tact table;

FIG. 17 is a flowchart showing operations for dividing components;

FIG. 18 is a flowchart showing operations for calculating the tacttable;

FIG. 19 is a flowchart showing operations for SWAP processing;

FIG. 20 is a block diagram showing the structure of an assembly systemas a modification of the first embodiment;

FIG. 21 shows an example of the data structure of a component name list;

FIG. 22 shows an example of the data structure of the componentplacement table;

FIG. 23 shows an example of the component name list in which the XYspeed has been replaced by the optimization unit 203;

FIG. 24 is a flowchart showing operations by the optimization apparatus200;

FIG. 25 a conceptual drawing showing the positional relationship betweena component feeder 301, a rotary head 302, and a circuit board 3030 inthe high-speed placement machine 124;

FIG. 26 shows an example of the data structure of a movement tact table;

FIG. 27 is a flowchart showing operations of the optimization apparatus200, and continues in FIG, 28;

FIG. 28 is a flowchart showing operations of the optimization apparatus200, and continues from FIG, 27;

FIG. 29 is a view of the rotary head of the high-speed placement machine124 from below, and shows the rotary head at a time t4;

FIG. 30 is a view of the rotary head of the high-speed placement machine124 from below, and shows the rotary head at a time t8;

FIG. 31 is a time chart showing movement of the component feeder in theZ direction, and the change in the picked up components and the placedcomponents;

FIG. 32 is an outline showing the positional relationship of thecomponent supply tray of the multifunctional placement machine, theplacement head, and the circuit board;

FIG. 33 is an example showing the data structure of the component namelist;

FIG. 34 shows a planar view of a circuit board 421 in FIG. 34;

FIG. 35 is an example showing the data structure of the Z axis list;

FIG. 36 shows a component name list in which the component nameinformation has been rearranged;

FIG. 37 is an example showing the data structure of a task list;

FIG. 38 is an example showing the data structure of a final placementpoint list;

FIG. 39 is an example showing the data structure of a maximum Zcoordinate list;

FIG. 40 is an example showing the data structure of a task pair list;

FIG. 41 is an example showing the data structure of a placement orderlist;

FIG. 42 is a planar view showing the positional relationship between acircuit board 451 and a head 441;

FIG. 43 is a flowchart showing an outline of operations by theoptimization unit 203;

FIG. 44 is a flowchart showing operations for path determinationaccording to return optimization, and continues in FIG. 45;

FIG. 45 is a flowchart showing operations for path determinationaccording to return optimization, and continues in FIG. 46;

FIG. 46 is a flowchart showing operations for path determinationaccording to return optimization, and continues in FIG. 47;

FIG. 47 is a flowchart showing operations for path determinationaccording to return optimization, and continues in FIG. 48;

FIG. 48 is a flowchart showing operations for path determinationaccording to return optimization, and continues from FIG. 47;

FIG. 49 shows an example of the paths of tasks according to aconventional technique;

FIG. 50 shows an example of the trajectory of tasks according to thefourth embodiment;

FIG. 51 shows a plurality of imaginary component planes;

FIG. 52 shows positions in which electronic components are placed on anoriginal component plane, and square areas;

FIG. 53 shows an example of the data structure of a plane list;

FIG. 54 shows an example of the data structure of an exit candidatelist;

FIG. 55 is a flowchart showing an outline of overall operations by theoptimization apparatus 200;

FIG. 56 is a flowchart showing operations for rearranging componentplanes; and

FIG. 57 is a flowchart showing operations for generating optimum pathsin component planes.

BEST MODE FOR CARRYING OUT THE INVENTION

The following describes embodiments of the present invention with use ofthe drawings.

1. First Embodiment

The following describes an assembly system 1 as a first embodiment ofthe present invention.

1.1 Structure of Assembly System 1

The assembly system 1, as shown in FIG. 1, is composed of anoptimization apparatus 200, a production line LAN 131, a feeder 120, acream solder printer 121, a cream solder print inspection machine 122, ahigh-speed adhesive application machine 123, a high-speed placementmachine 124, multifunction placement machines 125 and 126, a mountedcomponent inspection machine 127, a reflow apparatus 128, a visualinspection machine 129, and a storage apparatus 130. Note that theassembly system 1 is not limited to having this structure, and may havea structure that does not include all the stated production apparatuses.For example, the assembly system 1 may be without all the statedinspection machines, and may have a plurality of high-speed placementmachines. Furthermore, the production apparatuses may be arranged inseries in one line as stated, or to compose a plurality of lines inparallel. In addition, the production apparatuses are not limited tobeing arranged in the stated order.

The optimization apparatus 200, the feeder 120, the cream solder printer121, the cream solder print inspection machine 122, the high-speedadhesive application machine 123, the high-speed placement machine 124,the multifunction placement machine 125, the multifunction placementmachine 126, the mounted component inspection machine 127, the reflowapparatus 128, the visual inspection machine 129, and the storageapparatus 130 are connected via the production line LAN 131. Note thatthe means of connection is not limited to being a LAN. For example, theproduction apparatuses may be connected by RS232C. Alternatively, datamay be stored on a floppy disk, and the floppy disk used to transfer thedata instead of having the production apparatuses connected by anetwork.

The feeder 120, the cream solder printer 121, the cream solder printinspection machine 122, the high-speed adhesive application machine 123,the high-speed placement machine 124, the multifunction placementmachine 125, the multifunction placement machine 126, the mountedcomponent inspection machine 127, the reflow apparatus 128, the visualinspection machine 129, and the storage apparatus 130 are arranged inthe stated order along a transfer line.

Each apparatus subjects the circuit board to a respective predeterminedprocess, and transfers the processed circuit board to the apparatus thatperforms the next procedure. In this way, the circuit board is producedby being successively processed by each apparatus while being passedfrom an upstream procedure through to a downstream procedure. Here,upstream procedure refers to the procedure at the feeder 120 end of thetransfer line, and down stream procedure refers to procedure at thestorage unit 130 end of the transfer line.

1.2 Production Apparatuses

Initially, the feeder 120 keeps a stock of a plurality of circuit boardson which electronic components have not yet been mounted. Note howeverthat it is possible for some components to have been mounted on thesecircuit boards by other lines. Note also that these circuit boards mayinclude double-sided circuit boards on which electronic components areplaced on both sides. The feeder 120 feeds one circuit board at a timeto the cream solder printer 121.

The cream solder printer 121 receives one circuit board at a time fromthe feeder 120, prints cream solder on the received circuit board, andfeeds the circuit board on which the cream solder has been printed tothe cream solder print inspection machine 122.

The cream solder print inspection machine 122 receives one circuit boardat a time from the cream solder printer 121, inspects the state of thecream solder printed on the received circuit board, and feeds theinspected circuit board to the high-speed adhesive application machine123.

The high-speed adhesive application machine 123 receives one circuitboard at a time from the cream solder print inspection machine 122,applies adhesive for placing electrical components and the like to thereceived circuit board, and feeds the circuit board on which theadhesive has been applied to the high-speed placement machine 124.

The high-speed placement machine 124 receives one circuit board at atime from the high-speed adhesive application machine 123, placeselectrical components on the received circuit board at high speed, andfeeds the circuit board on which the electrical components have beenplaced to the multifunction placement machine 125.

FIG. 2 shows the main compositional elements of the high-speed placementmachine 124. Each of suction nozzles 243 d provided on respective bottomtips of a placement head 243 c picks up a component from a componentfeeder unit 243 f and performs component recognition. The placement head243 c rotates to a predetermined position, and the suction nozzles 243 dplace the components on respective predetermined positions on a circuitboard 243 e.

The high-speed placement machine 124 and the multifunction placementmachine 125 are different types of placement machines that placeelectronic components to a circuit board. The high-speed placementmachine 124 is for the purpose of placing a small number of types ofelectronic components on a circuit board at high speed, and themultifunction placement machine 125 is for placing a large number oftypes of electronic components having different shapes on a circuitboard. The high-speed placement machine 124 and the multifunctionplacement machine 125 have a common function of placing electroniccomponents on a circuit board.

The multifunction placement machine 125 receives one circuit board at atime from the high-speed placement machine 124, places components on thereceived circuit board, and feeds the circuit board on which theelectronic components have been placed to the multifunction placementmachine 126.

FIGS. 3A and 3B show the main compositional elements of themultifunction placement machine 125. Four suction nozzles 262 to 265 areprovided on a lower side of a placement head 261. The suction nozzles262 to 265 pick up components from a component feeder unit 266, and inthe case of ordinary components, performs component recognition.Depending on check rules, there are cases in which component recognitionis not performed when the component is component such as a connector.Next, the placement head 261 moves to a predetermined position, and thesuction nozzles 262 to 265 place the components in respectivepredetermined positions on the circuit board 267.

The multifunction placement machine 126 is the same as the multifunctionplacement machine 125.

The mounted component inspection machine 127 receives one circuit boardat a time from the multifunction placement machine 126, inspects fordefects or misalignment of the electronic components on the receivedcircuit board, and feeds the inspected circuit board to the reflowapparatus 128.

The reflow apparatus 128 receives one circuit board at a time from themounted component inspection machine 127, melts the cream solder on thereceived circuit board, and feeds the circuit board on which the creamsolder has been melted to the visual inspection machine 129.

The visual inspection machine 129 receives one circuit board at a timefrom the reflow apparatus 128, visually inspects the state of thesoldering and the state of the components, and feeds the inspectedcircuit board to the storage apparatus 130.

The storage apparatus 130 receives one circuit board at a time at theend of the process from the visual inspection machine 129, and storeseach received circuit board.

Note that the transfer line may have two transfer rails (called a duallane), and two or four circuit boards may be simultaneously provided,transferred, and processed by each production apparatuses from theupstream procedure through to the downstream procedure. Furthermore,although the above description describes one circuit board beingreceived at a time, two circuit boards may instead be transferred at atime.

1.3 Structure of the Optimization Apparatus 200

The optimization apparatus 200, as shown in FIG. 4, is composed of adisplay unit 201, an input unit 202, an optimization unit 203, atransmission/reception unit 204, an information storage unit 205,conversion units 206 to 208, and tact calculation units 209 to 211.

Specifically, the optimization apparatus 200 is a computer system thatincludes a microprocessor that stores a computer program. Theoptimization apparatus 200 achieves its functions by the microprocessoroperating according to the computer program.

(1) Information Storage Unit 205

The information storage unit 205 has a component table, a tactcalculation unit correspondence table, a placement machine type table, atact table, and a component placement table.

<Component Table>

As shown in FIG. 5, the component table is a data table that includes aplurality of pieces of component information, each of which includes acomponent name, a component number, an X coordinate value, a Ycoordinate value, an angle θ, an XY speed, a camera, a nozzle, and ahead speed.

The piece of component information corresponds to one component placedon the circuit substrate.

The component name identifies the type of a component. Here, type refersnot only to components having differing shapes, such as a QFP, aconnector, or a chip, but refers also to components having the sameshape but different names for reasons such as having differentresistance values. Such components are considered to be different typesof components.

The component number is an identifier for uniquely identifying acomponent placed on the circuit board.

The X coordinate value and Y coordinate value indicates, respectively,the X coordinate value and Y coordinate value of the position of thecomponent identified by the component number.

The angle θ indicates the angle formed between an X axis and a sidesurface of the component identified by the component number, if thecomponent is rotated to be placed on the surface of the circuit board.

The XY speed indicates the speed at which the circuit board moves on anXY plane.

The camera indicates a type of camera provided in the placementapparatus.

The nozzle indicates a type of nozzle provided on the head.

The head speed indicates a speed at which a head of the placementapparatus moves on an XY plane.

<Tact Calculation Unit Correspondence Table>

The tact correspondence table, as shown in FIG. 6, is a data tablehaving a plurality of pieces of correspondence information, each ofwhich is composed of a placement apparatus name and a tact calculationunit name.

The placement apparatus name identifies a placement apparatus.

The tact calculation unit name identifies a tact calculation unit in theoptimization apparatus 200. Each piece of correspondence informationindicates an association between the placement apparatus identified bythe placement apparatus name in the piece of correspondence informationand the tact calculation unit identified by the tact calculation unitname in the piece of correspondence information.

<Placement Apparatus Type Table>

As shown in FIG. 7, the placement apparatus type table is a data tablethat has a plurality of pieces of placement apparatus information, eachpiece of which is composed of a placement apparatus name, a type and ahead count.

The placement apparatus name identifies a placement apparatus.

The type is an identifier that identifies the type of placementapparatus.

The head count indicates the number of heads on the placement apparatus.

<Tact Table>

As shown in FIG. 8, the tact table is a data table that has areas forstoring a plurality of pieces of component tact information, each pieceof information being composed of a component name, a plurality of piecesof apparatus tact information, and a total.

Each piece of component tact information corresponds to a type ofcomponent placed on the circuit board.

The component name identifies a type of component.

The piece of apparatus tact information includes a maximum tact and aplacement time.

The maximum tact is the shortest of possible times for picking up thecomponent through to placing the component on the circuit board, and iswritten to the tact table in advance.

The placement time is the amount of time required for one task. A taskdenotes a sequence of component placing operations consisting of (a) theplacement head moving to the component feeder and picking up electroniccomponents, (b) the placement head moving at a set speed in aphotographic range of the recognition camera, and the recognition cameraperforming recognition scanning for photographing all electroniccomponents picked up by the placement head, and (c) the placement headplacing the electronic components on the circuit board.

The component count indicates how many components identified by thecomponent name are to be placed on the circuit board.

<Component Placement Table>

As shown in FIG. 10, the component placement table is a data table thathas areas for storing a plurality of pieces of component placementinformation.

Each piece of component placement information includes a placementapparatus name, a total placement time, and at least one set of acomponent name and a placement time.

The placement apparatus name identifies a placement apparatus.

The component name indicates the name of a component placed by theplacement apparatus identified by the placement apparatus name.

Furthermore, the placement time indicates the amount of time required toplace the component.

When a piece of component placement information includes a plurality ofsets of a component name and placement time, the sets are arranged inthe piece of component placement information in a manner that indicatesthe order in which the components are placed.

The total placement time is a total value of each placement time in thepieces of component placement information.

(2) Optimization Unit 203

The optimization unit 203 provisionally calculates a tact tabledescribed later.

Next, the optimization unit 203 repeatedly performs component assignmentprocessing described later and tact table calculation processingdescribed later, a designated number of times.

The optimization unit 203 then repeatedly performs swap processingdescribed later and tact table calculation processing described later, adesignated number of times. Each repeat, the optimization unit 203judges whether a line tact is less than a previously calculated linetact, and when the line tact is less than the previously calculated linetact, end the repeats.

<Tact Table Provisional Calculation>

The optimization unit 203 performs the following processing, for eachplacement apparatus.

-   -   1) The optimization unit 203 reads the placement apparatus name        from the placement apparatus type table, and reads the type and        head count corresponding to the read placement apparatus name        from the placement apparatus type table.    -   2) Next, the optimization unit 203 reads the tact calculation        unit name corresponding to the read placement apparatus name        from the tact calculation unit correspondence table, and selects        the tact calculation unit.    -   3) Next, the optimization unit 203 repeatedly performs the        following processing for each component name placed on the        circuit board.    -   3)-1 The optimization unit 203 reads the maximum tact and the        component count corresponding to the placement apparatus and the        component name from the tact table, reads the type and the head        count corresponding to the placement apparatus from the        placement apparatus type table, and outputs the component name,        the maximum tact, the component count, the type, and the head        count to conversion unit corresponding to the selected tact        calculation unit.    -   3)-2 The optimization unit 203 receives the placement time from        the tact calculation unit via the conversion unit, and writes        the received placement time to the area for storing the        placement time that corresponds to the component name and        placement apparatus in the tact table.

FIG. 9 shows one example of the tact table to which placement times havebeen written by the optimization unit 203. The parts shown with whitecharacters in FIG. 9 indicate placement times written according to theabove-described processing.

<Component Assignment>

The optimization unit 203 assigns components that can only be placed bya particular placement apparatus to that placement apparatus, writes thecomponent name and placement time to the component placement table,calculates a total placement time for the placement apparatus to whichthe components are assigned, and writes the total placement time to thecomponent placement table.

FIG. 10 shows an example of the component placement table to which theoptimization unit 203 has written component names of components that canonly be placed by a particular placement apparatus, and the placementtimes therefor. The parts shown with white characters in FIG. 10indicate placement times written according to the above-describedprocessing.

Next, the optimization unit 203 repeats the following processing forremaining components that have not been assigned to a placementapparatus.

-   -   1) The optimization unit 203 selects the placement apparatus        having the lowest total placement time.    -   2) The optimization unit 203 selects a remaining component that        is at the top of the tact table.    -   3) The optimization unit 203 assigns the selected component to        the selected placement apparatus, and writes the component name        and placement time to the component placement table.    -   4) The optimization unit 203 calculates the total placement time        of the placement apparatus to which the component has been        assigned, and writes the total placement time to the component        placement table.

FIG. 11 shows an example of the component placement table in FIG. 10 towhich the optimization unit 203 has further written one set of acomponent name and a placement time. The part shown with whitecharacters in FIG. 11 indicates the component name and the placementtime written according to the above-described processing.

FIG. 12 shows an example of the component placement table in FIG. 11 towhich the optimization unit 203 has further written the next set of acomponent name and a placement time. The part shown with whitecharacters in FIG. 12 indicates the component name and the placementtime written according to the above-described processing.

FIG. 13 shows an example of the component placement table when theoptimization unit 203 has finished assigning components.

<Tact Table Calculation>

The optimization unit 203 performs the following processing for eachplacement apparatus.

-   -   1) The optimization unit 203 selects a tact calculation unit.    -   2) The optimization unit 203 obtains from the component table        the X coordinate value, the Y coordinate value, the angle θ, the        XY speed, the camera, the nozzle, and the head speed for all        components assigned to the placement apparatus, and outputs the        all obtained X coordinate values, Y coordinate values, angles E,        XY speeds, cameras, nozzles, and head speeds to the conversion        unit that corresponds to the selected tact calculation unit.    -   3) The optimization unit 203 receives the total placement time        from the tact calculation unit via the conversion unit.    -   4) The optimization unit 203 performs the following processing        for each component name to be placed on the circuit board.    -   4)-1 The optimization unit 203 calculates the tact using the        following expression.        tact=(component count of the type)/(total number of components        assigned to the placement apparatus)*(total placement time)    -   4)-2 The optimization unit 203 overwrites the area in the tact        table that corresponds to the placement apparatus and the        component, with the calculated tact.

FIG. 14 shows an example of the tact table obtained according to theoptimization unit 203 performing the above-described tact tablecalculation processing. The parts shown with white characters in FIG. 14indicate the placement times written according to the above-describedprocessing.

<Swap Processing>

The optimization unit 203 selects, from the component placement table, aplacement apparatus Px that has the greatest total placement time, andselects one component name Nx assigned to the selected placementapparatus Px. Next, the optimization unit 203 selects another placementapparatus Py, and selects one component name Ny assigned to the selectedplacement apparatus Py. The optimization unit 203 then writes thecomponent name Nx and the component name Ny in place of each other inthe component placement table.

(3) Conversion Units 206 to 208

The conversion unit 206 receives information from the optimization unit203, converts the received information to a type that is compatible withthe tact calculation unit 209, and outputs the converted information tothe tact calculation unit 209.

Furthermore, the conversion unit 206 receives information from the tactcalculation unit 209, converts the received information to a type thatis compatible with the optimization unit 203, and outputs the convertedinformation to the optimization unit 203.

The conversion unit 207 and 208 are the same as the conversion unit 206,and therefore are not described here.

(4) Tact Calculation Unit 209 to 211

The tact calculation unit 209 receives a component name, a maximum tact,a component count, a type and a head count from the optimization unit203 via the conversion unit 206.

-   -   1) When the type is “rotary” or “1 by 1 robot”, the tact        calculation unit 209 calculates the placement time according to        the following expression.        placement time=maximum tact of component indicated by received        component name*received component count

Here, the maximum tact of the component indicated by the receivedcomponent name is stored in advance by the tact calculation unit 209,and is the tact by the placement apparatus corresponding to the tactcalculation unit 209.

-   -   2) When the type is “simultaneous pick up”, the tact calculation        unit 209 calculates the placement time according to the        following expression.        placement time=[component count/head count]*time per task

Here, the square brackets ([ ]) indicate a rounding operation.Furthermore, the time per task is stored in advance by the tactcalculation unit 209, and is the tact of the placement apparatuscorresponding to the tact calculation unit 209.

Furthermore, on receiving a plurality of component names, the tactcalculation unit 209 calculates the placement time for each componentname in the manner described above, totals the calculated placementtimes, and sets the total value as the placement time.

Next, the tact calculation unit 209 outputs the calculated placementtime to the optimization unit 203 via the conversion unit 206.

The tact calculation units 210 and 211 are the same as the tactcalculation unit 209, and therefore are not described here.

(5) Display Unit 201, Input Unit 202, and Transmission/Reception Unit204

The input unit 202 receives input of an operation from the user. Thedisplay unit 201 displays information. The transmission/reception unit204 transmits information optimized by the optimization unit 203 to theproduction apparatuses.

1.4 Operations by the Optimization Apparatus 200

The following describes operations by the optimization apparatus 200.

-   -   (1) Outline of Overall Operations by the Optimization apparatus        200

The following describes an outline of operations by the optimizationapparatus 200, with use of the flowchart in FIG. 15.

The optimization unit 203 provisionally calculates the tact table (stepS101).

Next, the optimization unit 203 sets a value 1 in a variable i (stepS102), compares the variable i with the designated number of times, andwhen the variable i is equal to or less than the designated number oftimes (step S103), the optimization unit 203 performs componentassignment (step S104), calculates the tact table (step S105), and addsa value 1 to the variable i (step S106). The optimization unit 203 thenreturns to step S103 and repeats the processing.

When the variable i is greater than the designated number of times (stepS103), the optimization unit 203 sets a value 1 in the variable i (stepS107), compares the variable i with the designated number of times, andwhen the variable i is equal to or less than the designated number oftimes (step S108), the optimization unit 203 performs swap processing(step S109), and calculates the tact table (step S110). Next, theoptimization unit 203 judges whether or not the line tact has decreased,and when the line tact has decreased (step S111), ends the processing.

When the line tact is remains the same or has increased (step S111), theoptimization unit 203 adds a value 1 to the variable i (step S112), andreturns to step S108 and repeats the processing.

When the variable i is greater than the designated number of times (stepS108), the optimization unit 203 ends the processing.

(2) Operations for Provisional Calculation of the Tact Table

The following describes operations for provisional calculation of thetact table, with use of the flowchart in FIG. 16. The operations forprovisional calculation of the tact table described here are the detailsof step S101 of FIG. 15.

The optimization unit 203 repeats steps S131 to S146 for each placementapparatus.

The optimization unit 203 reads a placement apparatus name from theplacement apparatus type table (step S132), and reads the type and headcount corresponding to the read placement apparatus name, from theplacement apparatus type table (step S133).

Next, the optimization unit 203 reads the tact calculation unit namecorresponding to the read placement apparatus name, from the tactcalculation unit correspondence table, and selects the tact calculationunit (step S134).

The optimization unit 203 then repeatedly performs steps S135 to S145for each component name to be placed on the circuit board.

The optimization unit 203 reads the maximum tact and the component countcorresponding to the placement apparatus and the component name, fromthe tact table, and reads the type and head number corresponding to theplacement apparatus, from the placement apparatus type table (stepS136). The optimization unit 203 then outputs the component name, themaximum tact, the component count, the type and the head count to theconversion unit corresponding to the selected tact calculation unit(step S137).

The conversion unit converts the received component name, maximum tact,component count, type, and head count, thereby generating a componentname, a maximum tact, a component count, a type and a head count in adata type compatible with the selected tact calculation unit (stepS138), and outputs the generated component name, maximum tact, componentcount, type, and head count to the selected tact calculation unit (stepS139).

The selected tact calculation unit calculates the placement time basedon the received component name maximum tact, component count, type, andhead count (step S140), and outputs the calculated placement time to theconversion unit (step S141).

Next, the conversion unit converts the received placement time (stepS142), and outputs the converted placement time to the optimization unit203 (step S143).

The optimization unit 203 then writes the received placement time to thetact table, in an area for storing the placement time corresponding tothe component name and the placement apparatus (step S144).

(3) Operations for Component Assignment

The following describes operations for assignment of components, withuse of the flowchart in FIG. 17. The operations for component assignmentdescribed here are details of step S104 of FIG. 15.

The optimization unit 203 assigns any components that can only be placedby a particular placement apparatus to that placement apparatus, andwrites the component names and the placement times to the componentplacement table (step S161). The optimization unit 203 calculates thetotal placement time of the placement apparatus to which the componentshave been assigned, and writes the total placement time to the componentplacement table (step S162).

Next, the optimization unit 203 judges whether or not any remainingcomponents not yet assigned to any of the placement apparatuses exist,and if not (step S163), ends the processing.

If any remaining components not yet assigned to any of the placementapparatuses exist (step S163), the optimization unit 203 selects theplacement apparatus having the shortest total placement time (stepS164), selects one remaining component from the top of the tact table(step S165), assigns the selected component to the selected placementapparatus and writes the component name and the placement time to thecomponent placement table (step S166). The optimization unit 203 thencalculates the total placement time for the placement apparatus to whichthe component has been assigned, and writes the total placement time tothe component placement table (step S167).

Next the optimization unit 203 returns to step S163 and repeats theprocessing.

(4) Operations for Tact Table Calculation

The following describes operations for calculation the tact table, withuse of the flowchart in FIG. 18. The operations for tact tablecalculation described here are details of step S105 and step S110 inFIG. 15.

The optimization unit 203 repeats steps S181 to S194 for each placementapparatus.

The optimization unit 203 selects a tact calculation unit (step S182),obtains, from the component table, the X coordinate value, the Ycoordinate value, the angle θ, the XY speed, the camera, the nozzle, andthe head speed of each component assigned to the placement apparatus(step S183), and outputs the obtained X coordinate values, Y coordinatevalues, angles θ, XY speeds, cameras, nozzles, and head speeds to theconversion unit corresponding to the selected tact calculation unit(step S184).

The corresponding conversion unit converts all the X coordinate values,Y coordinate values, angles θ, XY speeds, cameras, nozzles, and headspeeds, and outputs the converted data to the tact calculation unit(step S185).

The selected tact calculation unit calculates a total placement timebased on all the X coordinate values, Y coordinate values, angles θ, XYspeeds, cameras, nozzles, and head speeds (step S186), and outputs thecalculated total placement time to the conversion unit (step S187).

The conversion unit converts the total placement time (step S188), andoutputs the converted total placement time to the optimization unit 203(step S189).

Next, the optimization unit 203 repeatedly performs steps S190 to S193for each component name place on the circuit board.

The optimization unit 203 calculates the tact according to the nextexpression.tact=(component count of the type)/(total component count assigned tothe placement apparatus)*(total placement time)  (step S191)

Next, the optimization unit 203 overwrites the area in the tact tablefor the placement time corresponding to the placement apparatus andcomponent in the tact table, with the calculated tact (step S192).

(5) Operations for Swap Processing

The following describes operations for swap processing, with use of theflowchart in FIG. 19. The operations for swap processing described hereare details of step S109 in FIG. 15.

The optimization unit 203 selects, from the component placement table, aplacement apparatus Px that has the greatest total placement time (stepS211), selects one component name Nx assigned to the selected placementapparatus Px (step S212), selects another placement apparatus Py (stepS213), and selects one component name Ny that is assigned to theselected placement apparatus Py (step S214). Next, the optimization unitwrites the component name Nx and the component name Ny in place of eachother in the component placement table (step S215).

1.5 Conclusion

According to the technique disclosed in Japanese Laid-open PatentApplication No. 10-209697, components are respectively assigned to aplurality of placement apparatuses using a placement tact that is eithera reference placement tact pre-set for each component, or is a maximumplacement tact. Therefore, there is a problem that when the placementapparatuses actually place the components, the total placement timeswill not necessarily be even between placement apparatuses.

On the other hand, as described, according to the first embodiment,components are respectively assigned to the placement apparatuses basedon a tact calculated for all components assigned to each placementapparatus. Therefore, compared with the conventional technique, totalplacement time are likely to be more even between placement apparatuseswhen the placement apparatuses actually place the components.

1.6 Modifications

As shown in FIG. 20 an assembly system that is one modification of thefirst embodiment is composed, similarly to the assembly system 1, of anoptimization apparatus 200 b, a high-speed placement machine 124 b, amultifunction placement machine 125 b, a multifunction placement machine126 b, and other production apparatuses (not illustrated).

The optimization apparatus 200 b is composed of a display unit 201, aninput unit 202, an optimization unit 203, a transmission/receptionapparatus unit 204 b, and an information storage unit 205.

The high-speed placement machine 124 b is composed of a high-speedplacement unit that places electronic components at high-speed, aconversion unit 206 b, and a tact calculation unit 209 b. Themultifunction placement machine 125 b is composed of a multifunctionplacement unit that performs multifunctional placing of electroniccomponents, a conversion unit 207 b, and a tact calculation unit 210 b.The multifunction placement machine 126 b is composed of a multifunctionplacement unit that performs multifunction placing of electroniccomponents, a conversion unit 208 b, and a tact calculation unit 211 b.

In this modification, compositional elements having the same referencenumbers as those in the first embodiment have the same structure as thecompositional element in first embodiment.

The conversion units 206 b, 207 b, and 208 b are identical in structureto the conversion units 206, 207, and 208 of the first embodiment.Furthermore, the tact calculation units 209 b, 210 b, and 211 b areidentical in structure to the tact calculation unit 209, 210, and 211 ofthe first embodiment.

The transmission/reception unit 204 b performs transmission/receptionbetween the optimization unit 203 and the conversion unit 206 b, betweenthe optimization unit 203 and the conversion unit 207 b, and between theoptimization unit 203 and the conversion unit 208 b.

As described, in this modification the conversion unit 206 and the tactcalculation unit 209 of the optimization apparatus 200 in the firstembodiment have been moved to the high-speed placement machine 124, theconversion unit 207 and the tact calculation unit 210 have been moved tothe multifunction placement machine 125, and the conversion unit 208 andthe tact calculation unit 211 have been moved to the multifunctionplacement machine 126.

Furthermore, the optimization apparatus may perform the componentassignment at step S104 in the following manner.

The optimization apparatus may assign electronic components to theplacement apparatuses by using references placement times, each of whichindicates the time required for one placement apparatus to place onecomponent of one type component on the circuit board. Furthermore, theoptimization apparatus may assign electronic components by usingreference placement times, each indicating the time required for oneplacement apparatus to perform one task consisting of the series ofoperations from picking up through to placing one component of one typeon the circuit board. Furthermore, these methods may be combined.

Furthermore, the optimization apparatus may find placement times, eachof which indicating the time required for one placement apparatus toplace all electronic components of a type. Such placement time are foundby using reference placement times required for placing components on acircuit board, and a tool (computer program) that simulates operationsof placing equipment based on the component count of each type. Theoptimization apparatus then assigns the electronic components to theplacement apparatus with use of the found placement times.

2. Second Embodiment

The assembly system 1 of the second embodiment has the same structure ofthe assembly system 1 of the first embodiment.

The following focuses on describing the points that differ from theassembly system 1 of the first embodiment.

2.1 Structure of the Optimization Apparatus 200

(1) Information Storage Unit 205

The information storage unit 205 stores a component name list and acomponent placement table.

<Component Name List>

The component name list, as shown in FIG. 21, is a data table thatincludes a plurality of pieces of component information, each of whichis composed of a component name, a component thickness, an XY speed, ashape code, a nozzle, and a camera.

The component thickness indicates the dimensions of the component in aheight direction.

The shape code is an identifier for specifying the shape of thecomponent.

The component name, the XY speed, the nozzle, and the camera are asdescribed earlier, and therefore are not described here.

<Component Placement Table>

The component placement table, as shown in FIG. 22, includes an area forstoring at least one component name for each placement apparatus.

The placement apparatus name and the component name are the same asdescribed earlier, and therefore are not described here.

<Optimization Unit 203>

The optimization unit 203 rearranges the pieces of component informationincluded in the component name list into ascending order of componentthickness. An example of the component name list rearranged in ascendingorder of component thickness is shown in FIG. 21.

Next, the optimization unit 203 assigns the components to the placementapparatuses. Assignment of components to the placement apparatuses is asdescribed earlier, and therefore is not described here. An example ofthe component placement table generated by the optimization unit 203 isshown in FIG. 22.

As shown in the figure, components identified by component names “A” and“B” are assigned to a placement apparatus identified by a placementapparatus name “MSR1”, and components identified by component names “C”,“D”, “E” and “F” are assigned to a placement apparatus identified by aplacement apparatus name “MSR2”.

Next, the optimization unit 203 extracts all sets of previous processplacement apparatuses and subsequent process placement apparatuses, andrepeats the following processing for each extracted set. Here, theprevious process placement apparatus is the placement apparatus directlyupstream of the placement apparatus, and the subsequent placementapparatus is the placement apparatus directly downstream of theplacement apparatus.

-   -   1) The optimization unit 203 extracts, from among the components        assigned to the previous process placement apparatus, the lowest        XY speed Vmin.    -   2) The optimization unit 203 extracts, for the components        assigned to the subsequent process placement apparatus, all the        speeds greater than the XY speed Vmin.    -   3) The optimization unit 203 replaces XY speed Vmin the with the        extracted XY speed.

An example of the component name list in which the XY speed has beenreplaced by the optimization unit 203 is shown in FIG. 23.

2.2 Operations by the Optimization Apparatus 200

The following describes operations by the optimization apparatus 200,with use of the flowchart in FIG. 24.

The optimization unit 203 rearranges the pieces of component informationin the component name list, in ascending order of component thickness(step S300), and assigns the components to the placement apparatuses(step S301).

The optimization unit 203 selects a set of a previous process placementapparatus and a subsequent process placement apparatus (step S302). Ifall sets have already been selected (step S303), the processing ends.

If any sets remain that have not yet been selected (step S303), theoptimization unit 203 extracts, from among the components assigned tothe previous process placement apparatus, that having the lowest XYspeed Vmin (step S304), and extracts, from among the components assignedto the subsequent process placement apparatus, all speed higher than theXY speed Vmin (step S305). The optimization unit 203 then replaces theXY speed Vmin with the extracted XY speed (step S306), and returns tostep S302 to repeat the processing.

2.3 Conclusion

As has been described, according to the assembly system 1 of the secondembodiment, the XY speed of components assigned to the subsequentprocess placement apparatus is set so as not to exceed the XY speed ofcomponents assigned to the previous process placement apparatus.Therefore, the components placed by the previous process placementapparatus do not move from their predetermined positions or protrudefrom the circuit board during the placing operations by the subsequentprocess placement apparatus.

Note that instead of the described movement time, the optimizationapparatus may control using tact information of the circuit board whenthe electronic components are placed.

3. Third Embodiment

The assembly system 1 of the third embodiment has the same structure asthe assembly system 1 of the first embodiment.

The following focuses on describing the points that differ from theassembly system 1 of the first embodiment.

The high-speed placement machine 124, as shown in FIG. 25, has acomponent feeder 301. A plurality of parts cassettes are providedaligned in parallel in the component feeder 301. Each parts cassettesupplies a particular type of component. The component feeder 301 movesin a left-right direction in the drawing, this direction being referredto as the Z direction.

The high-speed placement machine 124 further includes a rotary head 302.The rotary head 302 picks up a component from one parts cassette, whenin suction position, rotates a half-turn, and places the picked upcomponent in a placement position on the circuit board 303.

As the rotary head 302 repeatedly picks up and places components, thecomponents are successively placed on the circuit board 303.

The characters “A”, “B”, “C”, etc. on the circuit board 303 indicatecomponents, and the arrows on the circuit board 303 indicate the orderin which the components are placed.

3.1 Structure of the Optimization Apparatus 200

(1) Information Storage Unit 205

The information storage unit 205 has a movement tact table.

The movement tact table, as shown in FIG. 26, has an area for storing aplurality of pieces sets of information, each set consisting of acomponent name, an XY movement amount, a XY movement tact, a Z movementamount, a Z movement tact, a return tact, and a total movement tact.Each set corresponds to one of the components placed on the circuitboard.

The component name is for identifying a component.

The XY movement amount indicates a distance, when placing a component,from the position where the previously placed component was placed tothe position where the current component is to be placed.

The XY movement tact is the time required for the head to move thedistance indicated by the XY movement amount.

The Z movement amount indicates a distance that the component feedermoves in the Z direction when a component to be placed differs in typeto the previously placed component, from a state in which the partscassette that supplies the previously placed component is in the suctionposition of the head, so that the parts cassette that supplies thecomponent to be placed is in the suction position.

The Z movement tact is the time required for the component feeder tomove the distance indicated by the Z movement amount.

The return tact indicates a distance, when a component that has beenpresently placed differs in type to the component previously placed,that the component feeder moves in the Z direction from a state in whichthe parts cassette that supplies the presently placed component is inthe suction position of the head so that the parts cassette thatsupplies the previously placed component is in the suction position.

The total movement tact is a time calculated according to the followingexpression.total movement tact={(XY movement tact),((Z movement tact)+(returntact)*2)}

(2) Optimization Unit 203

The optimization unit 203 rearranges the pieces of component informationincluded in the component name list into ascending order of placementtact. Next, the optimization unit 203 divides the component name list,in which the component information has been rearranged in ascendingorder of placement tact, into a plurality of groups of pieces ofcomponent information having the same placement time. Each group isassigned to a placement apparatus. Here, the group with the shortestplacement time is assigned to the placement apparatus closest to theupstream end. Next, the optimization unit 203 rearranges the componentinformation in each group in descending order of the component count.

Next, the optimization unit 203 finds a component R0 closest to the homeposition of the head, from among the first group of components assignedto the upstream-most placement apparatus.

Next, the optimization unit 203 repeats the following for each remainingcomponent.

-   -   1) The optimization unit 203 calculates an XY movement amount        from the component R0 for all other components.    -   2) The optimization unit 203 calculates an XY movement tact from        R0 for all other components.    -   3) The optimization unit 203 calculates a Z movement amount from        R0 for all other components.    -   4) The optimization unit 203 calculates a Z movement tact from        R0 for all other components.    -   5) The optimization unit 203 calculates a return tact from R0        for all other components.    -   6) The optimization unit 203 calculates a total movement tact        for all other components, according to the following expression.        total movement tact=Max{(XY movement tact),((Z movement        tact)+(return tact)*2)}    -   7) The optimization unit 203 selects the lowest total movement        tact from among the movement tacts.    -   8) The optimization unit 203 connects a path from R0 to the        component R1 that corresponds to the selected total movement        tact.    -   9) The optimization unit 203 sets the component R1 as the        component R0.

Next, when a path that causes a loss in tact exists, the optimizationunit 203 divides the path, thereby generating a plurality of clusters,and re-connects the divided path so that the tact is a minimum.

3.2 Operations by the Optimization Apparatus 200

The following describes operations by the optimization apparatus 200,with use of the flowcharts in FIGS. 27 to 28.

The optimization unit 203 rearranges the pieces of component informationin the component name list, into ascending order of placement tact (stepS321), assigns the pieces of component information in the component namelist into a plurality of groups, thereby grouping the components withrespect to the placement apparatuses (step S322), and, within eachgroup, rearranges the pieces of component information into descendingorder of component count (step S323).

Next, the optimization unit 203 finds the component R0 closest to thehome position of the head, from among the components in the first group(step S324).

The optimization unit 203 then judges whether or not any componentsremain, and when a component remains (step S325), calculates the XYmovement amount from the component R0 for all of the other components(step S326), calculates the XY movement tact from R0 for all of theother components (step S327), calculates the Z movement amount from R0for all of the other components (steps S328), calculates the Z movementtact from R0 for all of the other components (steps S329), andcalculates the return tact from R0 for all of the other components (stepS330).

Next, the optimization unit 203 calculates the total movement tact foreach of the other components according to the following expression.total movement tact=Max{(XY movement tact),((Z movement tact)+(returntact)*2)}  (step S331)

Next, the optimization unit 203 selects the lowest total movement tactfrom among the calculated movement tacts (step S332), connects a pathfrom R0 to the component R1 corresponding to the selected totalplacement tact (step S333).

The optimization unit 203 then sets the component R1 as the component R0(step S334), and returns to step S325 to repeat the processing.

The optimization unit 203 judges whether or not any remaining componentsexist, and when no remaining components exist (step S325), and when apath that is a cause of tact loss exists (step S335), divides the pathinto a plurality of clusters (step S336), and reconnects the dividedpath so that the tact is a minimum (step S337). The optimization unit203 then ends the processing.

When no path that is a cause of tact loss exists (step S335), theoptimization unit 203 ends the processing.

3.3 Conclusion

As has been described, by determining the placement order of componentsbased on a Z movement tact and a return tact in addition to an XYmovement tact, large moves in the Z direction can be reduced.

3.4 Modification

The following describes an assembly system as a modification of thethird embodiment.

FIG. 29 and FIG. 30 show the rotary head of the high-speed placementmachine 124 as seen from underneath the rotary head.

A rotary head R101 is shown in FIG. 29 in a state at time t4. The rotaryhead R101 rotates in a clockwise direction on a point P11. The rotaryhead R101 has eight nozzles N11, N12, N13, N14, N15, etc. At the timet4, the nozzle N11 is positioned at a suction point P1, and the nozzleN15 is positioned at a placement point P2.

The nozzle N14 picks up a component A (component number A1), the nozzleN13 picks up a component A (component number A2), and the nozzle N12picks up a component A (component number A3). At the time t4, the nozzleN11 is about to pick up a component B (component number B1).

FIG. 30 shows a rotary head R102 at a time t8 after the rotary hasrotated a half turn. At the time t8, the nozzle N11 is in the placementposition P2, and the nozzle N15 is in the suction position P1.

The nozzle N11 is about to place a component B (component number B1) ona circuit board.

FIG. 31 is a time chart showing movement of the component feeder in theZ direction and changes in the state of components that are picked upand components that are placed, with the lapse of time.

At times t0 to t3, the component feeder is positioned so that the nozzleat the suction point can pick up a component A from the parts cassettethat supplies components A.

At t1, the nozzle N14 picks up a component A (component number A1).

At t2, the nozzle N13 picks up a component A (component number A2).

At t3, the nozzle N12 picks up a component A (component number A3).

At times t3 to t4, the component feeder moves so that the nozzle at thesuction point can pick up a component B from the parts cassette thatsupplies components B.

At time T3, the nozzle N11 picks up a component B (component number B1).

At time t5, before which the rotary has rotated a half turn from t1, thenozzle n14 places a component A (component number A1) on the circuitboard.

Similarly, at times t6 and t7, the nozzles place components A on thecircuit board.

At time t8, before which the rotary has rotated a half turn from t4, thenozzle N11 places a component B (component number B1) on the circuitboard.

As described, the Z movement tact has a further delay equal to the halfturn of the rotary.

Consequently, in the third embodiment, when calculating the Z movementtact, the optimization unit 203 may further add the time taken for ahalf turn of the rotary. When calculating the total movement tact, theoptimization unit 203 uses the Z movement tact that includes the timefor a half turn of the rotary.

4. Fourth Embodiment

The assembly system 1 of the fourth embodiment has the same structure asthe assembly system 1 of the first embodiment.

The following focuses on describing the points that differ from theassembly system 1 of the first embodiment.

The multifunctional placement machine 125, as shown in FIG. 32, includesa component feeder tray 401. Components of one type are arranged on thecomponent feeder tray 401. One type of component is supplied from thefeeder tray 401 feeds the components. A component feeder (notillustrated) moves one of a plurality of component feeder trays to asuction position of a head 402. The direction in which the componentfeeder tray moves is referred to as the Z axis.

The multifunctional placement machine 125 includes a head 402. The head402 is provided with a plurality of nozzles. Each nozzle, when in asuction position, picks up a component from one of component supplytrays 401.

The multifunction placement machine 125 further includes a camera 403.

After picking up a component, the head 402 moves across a photographicrange 404 of the camera 403, and then, in the placement position, placesthe component on the circuit board 405.

As the rotary head 302 repeatedly picks up and places components, aplurality of components are successively placed on the circuit board303.

The characters A, B, C, etc. shown on the circuit board 405 indicatecomponents. The arrows shown in the drawing indicate the path alongwhich the head 402 moves.

4.1 Structure of the Optimization Apparatus 200

(1) Information Storage Unit 205

The information storage unit 205 has a component name list, a Z axislist, a plurality of task lists, a final placement point list, a maximumZ coordinate list, a task pair list, and a placement order list.

<Component Name List>

The component name list, as shown in one example in FIG. 33, stores aplurality of pieces of component name information, each of whichincludes a component name, a component count, a nozzle, and other items.

The component name identifies a component.

The component count indicates how many of the component are placed onthe circuit board.

The nozzle is an identifier indicating a type of nozzle.

<Z Axis List>

The Z axis list, as shown in one example in FIG. 35, includes an areafor storing a plurality of pieces of Z axis information, each piece of Zaxis information consisting of a component name and a Z coordinate.

The component name identifies a component.

The Z coordinate indicates a position of a parts cassette or a tray inthe component feeder that feeds the component shown by the correspondingcomponent name.

<Task List>

Each task list, as shown in one example in FIG. 37, has an area forstoring a task number and a plurality of pieces of task information.

Here, a task denotes a series of operations consisting of: the placementhead moving to the component feeder, picking up a plurality ofelectronic components, and then moving at a set speed across thephotographic range of the recognition camera; the recognition cameraphotographing all the electronic components picked up by the placementhead; and the placement head placing the plurality of electroniccomponents on the circuit board. Each placement apparatus placescomponents on a circuit board by executing a plurality of tasks.

Each task list includes pieces of placement information equal in numberto the nozzles of the placement head.

The task number is for identifying the task.

Each piece of task information includes a placement order, a componentname, a component number, an X coordinate value, a Y coordinate value, aZ coordinate value, and other items.

The placement order indicates a position in an order in which componentscorresponding to the placement information are placed in the task.

The component name identifies a component to be placed.

The component number identifies a component.

The X coordinate value and Y coordinate value is, respectively, the Xcoordinate value and the Y coordinate value of the position in which thecomponent is placed on the circuit board.

The Z coordinate value indicates the position of the cassette or thetray, in the component feeder, that feeds the component.

<Final Placement Point List>

The final placement point list, as shown in one example in FIG. 38,includes an area for storing a plurality of pieces of final placementpoint information, each piece of final placement point informationconsisting of a task number and a final placement point X coordinatevalue.

The task number identifies a task.

The final placement point X coordinate value indicates the X valuecoordinate of the position in which the final component in the task isplaced on the circuit board.

<Maximum Z Coordinate List>

The maximum Z coordinate list, as shown in one example in FIG. 39,includes an area for storing a plurality of pieces of maximum Zcoordinate information, each piece of maximum Z coordinate informationconsisting of a task number and a maximum Z coordinate value.

The task number identifies a task.

The maximum Z coordinate value indicates the greatest Z coordinate valueamong the Z coordinate values indicating the position of a cassette or atray in the component feeder.

<Task Pair List>

The task pair list, as shown in one example in FIG. 40, includes aplurality of pieces of task pair information, each of which includes avariable a, a former task number and a latter task number.

The variable a is a variable used in return optimization which isdescribed later.

The former task number identifies a task performed before a latter task.

The latter task number identifies the task performed subsequent to theformer task.

<Placement Order List>

The placement order list, as shown in one example in FIG. 41, is a datatable that stores information indicating the order in which tasks areexecuted.

The placement order list includes an area for storing a plurality ofpieces of placement order information, each of which consists of aplacement order and a task number.

The placement order indicates the position of the task in the order ofexecution by the placement apparatus.

The task number identifies the task.

(2) Optimization Unit 203

The optimization unit 203 rearranges the pieces of component nameinformation in the component name list stored in the information storageunit 205, into descending order of component count. The component namelist rearranged in descending order of component count is shown in FIG.33.

Next, the optimization unit 203 calculates an average X coordinate valueXm and an average Y coordinate value Ym on the circuit board for eachcomponent name indicated in the stored component name list, using thefollowing expressions.

<Expressions>Xm={X0+X1+ . . . +Xn}/nYm={Y0+Y1+ . . . +Yn}/n

Here, n indicates how many of the specific component are to be placed onthe circuit board.

FIG. 34 shows a planar view of a circuit board 421. FIG. 34 shows, in acase in which four components indicated by the component name A areplaced on the circuit board 421, positions 431 to 434 of the componentsplaced on the circuit board, and a position 422 indicated by an Xcoordinate value Xm and a Y coordinate value Ym calculated using theaforementioned expressions. Next, for each component in the order thatthe component name information is stored in the component name list, andassuming that the component is to be placed in a position indicated bythe calculated X coordinate value Xm and Y coordinate value Ym, theoptimization unit 203 determines the Z coordinate value of the partscassette or tray in the component feeder, so that movement in the Zdirection in order to pick up the component is as little as possible.Next, the optimization unit 203 writes the determined Z coordinate valueto the Z axis list, in correspondence with the component indicating thecomponent. FIG. 35 shows an example of a Z axis list generated in thisway.

As described, the optimization unit 203 determines the Z coordinatevalue for each component in the order in which the component nameinformation is stored in the component name list, and therefore the Zcoordinate value is set such that the greater the component count of thetype, the less movement by the component feeder in the Z axis direction.

Next, the optimization unit 203 generates a plurality of groups byrearranging the component name information included in the componentname list, according to the nozzle or tool included in the componentname information. FIG. 36 shows the component name list in which thecomponent name information has been rearranged in this way. Here,component name information that includes nozzle “S” forms group 1,component name information that includes nozzle “M” forms group 2, andcomponent name information that includes nozzle “L” forms group 3.

Next, the optimization unit 203 generates a plurality of task lists bydetermining task assignment for each component in the component table.An example of a generated task list is shown in FIG. 37.

Next, the optimization unit 203 determines a path for each nozzle, orfor each cassette/tray, according to return optimization. Details ofreturn optimization are described below.

Next, the optimization unit 203 finds, for each group, a point on whichthe group can be most quickly placed on the circuit board, and connectsthe cassette path and the tray path.

<Operations for Path Determination According to Return Optimization>

The following describes operations by the optimization unit 203 for pathdetermination according to return optimization.

The optimization unit 203, for each task, extracts the X coordinatevalue from the task information that is last in the placement order inthe task list corresponding to the task, generates final placement pointinformation consisting of the task number identifying the task and theextracted X coordinate value, and writes the generated final placementpoint information to the final placement point list.

Next, the optimization unit 203 rearranges the final placement pointinformation in the final placement point list, so as to be in descendingorder of X coordinate value of the final placement point, and overwritesthe former final placement point list with the final placement pointlist in which the final placement point information has been rearranged.An example of the final placement point list is shown in FIG. 38.

Next, the optimization unit 203, for each task, finds the maximum Zcoordinate value in the task list corresponding to the task, and writesthe maximum Z coordinate value composed of the task number identifyingthe task and found maximum Z coordinate value, to the maximum Zcoordinate list. The maximum Z coordinate list is generated in this way.FIG. 39 shows an example of the maximum Z coordinate list. Theoptimization unit 203 then rearranges the maximum Z coordinateinformation in the maximum Z coordinate list, so as to be in descendingorder of maximum Z coordinate, and rewrites the former maximum Zcoordinate list with the maximum Z coordinate list in which the maximumZ coordinate information has been arranged.

Next, the optimization unit 203 repeatedly executes the followingprocessing while incrementing the variable a starting from 1, until thevariable a reaches a value equal to the task number.

-   -   1) The optimization unit 203 sets the task identified by the        task number included in the final placement point information        that is the a-th in the final placement point list, as the        former task in the a-th task pair.    -   2) The optimization unit 203 sets the task identified by the        task number included in the maximum Z coordinate information        that is the a-th in the maximum Z coordinate list, as the latter        task in the a-th task pair.    -   3) The optimization unit 203 generates task pair information        consisting of the variable a, the former task number that        identifies the former task, and the latter task number that        identifies the latter task, and writes the generated task pair        information to the task pair list.

Next, the optimization unit 203 extracts, from each task list, the pieceof task information that is last in the placement order, and thenextracts, from the plurality of pieces of extracted task information,the piece of task information that has the greatest X coordinate value.The optimization unit 203 assigns the position “1” in the placementorder to the task identified by the task number in the task list in theextracted pieces of task information, generates task order informationconsisting of the task number and the position “1”, and writes thegenerated placement order information to the placement order list.

Next, the optimization unit 203 repeatedly executes the followingprocessing while incrementing the variable a by 1 starting from 1, untilall tasks have been assigned a position in the placement order.

-   -   1) The optimization unit 203 finds the task number that        identifies the task having a position a in the placement order,        from the placement order list.    -   2) The optimization unit 203 finds, from the task list, the task        pair information that includes the former task number        identifying the former task, the former task being the task        identified by the found task number.    -   3) The optimization unit 203 finds the latter task number from        the found task pair information.    -   4) The optimization unit 203 judges, using the placement order        list, whether or not a position in placement order has been        assigned to the latter task identified by the found latter task        number.    -   5)-1 If a position in the placement order has been assigned, the        optimization unit 203 judges whether there are any unassigned        tasks to which a position in the placement order has not been        assigned, and if any such unassigned tasks exist, assigns the        position “a+1” to the remaining unassigned task having the        greatest final placement X coordinate.    -   5)-2 If a position in the placement order has not been assigned,        the optimization unit 203 assigns the position “a+1” to the        latter task.

Next, the optimization unit 203 calculates the movement amount of thehead in the following way for each task.

FIG. 42 is a planar view showing the positional relationship between thecircuit board 451 and the head 441. In FIG. 42, nozzles 443, 444, etc.are provided on the head 441. The nozzles are separated from each otherby an offset 450.

Here it is assumed that the nozzles 443, 444 provided on the head 441respectively pick up components N1 and N2, and place the components onplacement points 452 and 453. Here, assuming that the coordinates of theplacement points 452 and 453 are (100, 200) and (200, 200),respectively, the movement amount ΔX of a central point 442 of the headin the X direction and the movement amount ΔY of a central point 442 ofthe head in the Y direction are, respectively, as follows.ΔX=X coordinate of placement point of N 2−X coordinate of placementpoint N 1−offset=200−100−20=80ΔY=Y coordinate of placement point of N 2−Y coordinate of placementpoint N 1=200−200=0

In this way, the optimization unit 203 calculates the movement amount ofthe center point of the head taking the offset into account.

Next, the optimization unit 203 calculates a total P1 of the headmovement amount of all tasks.

Next, the optimization unit 203 sets the value of a variable task2 to 1,sets a variable task2 to (variable task2+1), calculates a movementamount of the head for each task, and calculates a total movement amountolength of the head for all tasks.

Next, the optimization unit 203 swaps the placement order of task1 andtask2, calculates the head movement amount for each task, and calculatesa total movement amount nlength of the head for all tasks.

Next, the optimization unit 203 compares the total olength with thetotal nlength, and when the total olength is equal to or greater thanthe total nlength, employs the switched placement order. When the totalolength is less than the total nlength, the optimization unit 203employs the original (un-switched) placement order.

Next, the optimization unit 203 adds 1 to the value of task2, comparestask2 with the task count, and if task2 is equal to or less than thetask count, repeats the described processing.

When task2 is greater than the task count, the optimization unit 203adds 1 to the value of task2, compares task2 with the task count, andwhen task2 is equal to or less than the task count, repeats thedescribed processing.

When task2 is greater than the task count, the optimization unit 203calculates the head movement amount for each task in the swappedplacement order, and calculates the total movement amount P2 of the headin all tasks.

Next, the optimization unit 203 compares P2 with P1, and when P2 is lessthan P1, substitutes P1 with P2, and repeats the described processing.

When P2 is greater than or equal to P1, the optimization unit 203 endsthe processing.

4.2 Operations by the Optimization Apparatus 200

The following describes operations by the optimization apparatus 200.

(1) Outline of Operations by the Optimization Unit 203

The following describes an outline of operations by the optimizationunit 203, with use of the flowchart shown in FIG. 43.

The optimization unit 203 rearranges the pieces of component nameinformation included in the component list, so as to be in descendingorder of component count (step S401), calculates, for each component,the average value on the circuit board (step S402), determines Z basedon the average value calculated for each component, and generates the Zaxis list (step S403), rearranges the pieces of component nameinformation in the component name list, according to nozzle (or tool),thereby generating a plurality of groups (step S404), assigns aplacement point to each task, and generates a task list (step S405).

Next, the optimization unit 203 determines, for each nozzle or for eachcassette/tray, a path according to return optimization (step S406),finds, for each group, a point to which the group can be most quicklyplaced on the circuit board (step S407), and connects the cassette pathand the tray path (step S408).

(2) Path Determining Operations According to Return Optimization

The following describes path determination operations according toreturn optimization, with use of the flowcharts in FIG. 44 to FIG. 48.

The optimization unit 203 finds the X coordinate of the final placementpoint of each task and generates a final placement point list (stepS421), rearranges the final placement point list, so as to be indescending order of X coordinates (step S422), finds the maximum Zcoordinate of the component type for each task and generates a maximum Zcoordinate list (step S423), and rearranges the generated maximum Zcoordinate list so as to be in descending order of maximum Z coordinate(step S424).

Next, the optimization unit 203 sets the variable a to “1” (step S425),sets the a-th task in the final placement point list as the former taskin the a-th task pair (step S426), sets the a-th task in the maximum Zcoordinate list as the latter task in the a-th task pair (step S427),adds “1” to the variable a (step S428), compares the variable a with thetask count, and if the variable a is equal to or less than the taskcount (step S429), returns to step S426 and repeats the processing.

When the variable a is greater than the task count (step S429), theoptimization unit 203 assigns the position “1” in the task order to thetask having the greatest final placement point X coordinate (step S430).

Next, the optimization unit 203 sets the value of the variable a to “1”(step S431), finds the task that is a-th in the placement order in theplacement order list (step S432), finds, from the task list, the pair inwhich the found task is the former task (step S433), finds the lattertask of the found pair (step S434), and judges whether or not a positionin the placement order has been assigned to the latter task, using theplacement order list (step S435). If a position in the placement orderhas been allocated (step S436), the optimization unit 203 judges whetheror not there are any unassigned tasks to which a position in theplacement order has not been assigned, and if any such tasks exist (stepS437), assigns a position “a+1” in the placement order to the remainingtask having the greatest final placement point X coordinate (step S438),adds “1” to the variable a (step S439), and then returns to step S432and repeats the processing.

If the latter task has not been assigned a placement order (step S436),the optimization unit 203 assigns the position “a+1” to the latter task(step S440), adds “1” to the variable a (step S439), and then returns tostep S432 and repeats the processing.

If there are no unassigned tasks (step S437), the optimization unit 203calculates the head movement amount for each task (step S441),calculates a total head movement amount P1 of all tasks (step S442),sets the variable task1 to “1” (step S443), sets the variable task2 to(task1+1) (step S444), calculates the head movement amount for each task(step S445), calculates the total head movement amount olength of alltasks (step S446), swaps task1 and task2 in the placement order (stepS447), calculates a head movement amount for each task (step S448), andcalculates a head total movement amount nlength for all tasks (stepS449).

Next, the optimization unit 203 compares the total olength with thetotal nlength, and if the total olenght is greater than the totalnlength (step S450), employs the swapped placement order (step S452). Ifthe total olength is less than the total nlength (step S450), theoptimization unit 203 employs the original placement order (step S451).

Next, the optimization unit 203 adds “1” to task2 (step S453), comparestask2 with the task count, and if task2 is equal to or less than thetask count (step S454), returns to step S445 and repeats the processing.

If task2 is greater than the task count (step S454), the optimizationunit 203 adds “1” to task2 (step S455), compoares task2 and the taskcount, and when task2 is less than or equal to the task count (stepS456), returns to step S444 and repeats the processing.

If task1 is greater than the task count (step S456), the optimizationunit 203 calculates the head movement amount for each task in theswapped task placement order (step S457), and calculates the head totalmovement amount P2 of all tasks (step S458).

Next, the optimization unit 203 compares P1 and P2, and if P2 is lessthan P1 (step S459), substitutes P1 with P2 (step S460), and returns tostep S443 and repeats the processing.

If P2 is equal to or greater than P1 (step S459), the optimization unit203 ends the processing.

4.3 Conclusion

In this way, according to the fourth embodiment, a path can bedetermined to achieve optimum XY movement tasks taking nozzlereplacement and the like into account.

Here, FIG. 49 shows an example of the paths for the tasks when aconventional technique is used. Furthermore, FIG. 50 shows an example ofthe paths for the tasks according to the fourth embodiment. Comparingthese figures, it can be seen that less crossover between paths isevident according to the present invention.

Note that the optimization unit may determine the position for thecassette (or tray) of the component feeder for each component in thefollowing manner.

The optimization unit may calculate, for a cassette Z1, a total movementpath movement time from Z1 to all components of the component name A.total path movement time of Z 1=Σ(speed*distance i)

Here, the speed is the movement speed of the head, and the distance i isthe distance from the cassette Z1 of the component feeder to a componenti of the component name A.

The optimization unit calculates the total path movement time for allcassettes (or trays) in the same way.

Next, the optimization unit selects the lowest of the calculated totalpath movement times, and uses the cassette (or tray) corresponding tothe selected total path movement for the component of the component nameA.

The optimization unit determines the cassette (or tray) for othercomponents in the same way.

If a cassette (or tray) is selected more than once, the optimizationunit selects a cassette (or tray) in descending order of componentcount.

5. Fifth Embodiment

The assembly system 1 of the fifth embodiment has the same structure asthe assembly system 1 of the first embodiment.

The following focuses on describing the points that differ from theassembly system 1 of the first embodiment.

The optimization apparatus 200 of the fifth embodiment works on theassumption that a circuit board plane is composed of a plurality ofcomponent planes as shown FIG. 51, each of which is formed for adifferent type of component, and rearranges the component planes,determines an optimal path within each component plane, and determinesthe order for placing the components on the circuit board by generating3D paths that connect the component planes.

5.1 Structure of the Optimization Apparatus 200

The following describes the structure of the optimization apparatus 200.

(1) Optimization Unit 203

<Component Plane Generation>

The optimization unit 203 rearranges the pieces of component nameinformation in the component name list based on XY speed and componentcount, so as to be in descending order of XY speed and descending orderof component count. Here, the component name list is that shown in FIG.21 with the addition of a component count in each piece of componentname information, that indicates how many of the components indicated bythe component name in the piece of component name information are to beplaced on the circuit board. Next, the optimization unit 203 writes therearranged component name information to a plane list.

The component name list generated in this way forms a plurality ofgroups. Each group includes component name information that includes thesame XY speed, and the groups are arranged in descending order of XYspeed.

Furthermore, the pieces of component name information in each group arearranged in descending order of total component count.

Next, the optimization unit 203 generates each component plane bytreating each piece of component name information as being equivalent toa component plane.

The component planes generated in this way are shown in the schematicdrawing in FIG. 51.

As shown in FIG. 51, component planes 511, 512, etc. correspondrespectively to the pieces of component information including thecomponent names A, B, etc. Component planes 511, 512 and 513 belong to agroup SP1, and components 514, 515, etc. belong to a group SP2. SP1 andSP2 indicate respective XY speeds, and the XY speed of SP1 is greaterthan that of SP2. In each of the groups, the component planes arearranged in descending order of component count.

<Component Plane Rearrangement>

The optimization unit 203, as shown in FIG. 52, selects one originalcomponent plane 521. Here, it is supposed that components identified bythe component name A are to be placed in positions 531 to 535 on theoriginal component plane 521.

The optimization unit 203 selects a next component plane from amongremaining component planes. It is supposed that components identified bythe component name B are placed in positions 541 to 544 on the nextcomponent plane.

In the original component plane 521, the optimization unit 203 setssquare-shaped areas 551 to 555 respectively for the positions 531 to535, the center of each square-shaped area 551 to 555 being therespective position 531 to 535, and each side of each area 551 to 555being a length ΔZ. Here, ΔZ indicates the movement amount of thecomponent feeder from a component placed on the original component plane521 to a component placed on the next component plane. Specifically, ΔZis 1 second in terms of time and 15 mm in terms of distance.

Next, the optimization unit 203 judges whether or not any of thepositions 541 to 544 are in the area 551, and counts how may of thepositions 541 to 544 are in the area 551. In the same way, theoptimization unit 203 counts the how many positions 541 to 544 are ineach of the areas 552 to 555. The optimization unit 203 totals thecounted number of positions, calculates a total number of candidates foran exit (“exit candidates”) from the original component plane to thenext component plane, and writes the calculated total exit candidates toan area that corresponds to an exist candidate list.

In the manner described above, the optimization unit 203 sets eachcomponent plane as an original plane, sets all other planes as nextcomponent planes, calculates a total number of exit candidates from eachcomponent plane to each next component plane, and writes each calculatednumber of exit candidates to the exit candidate list.

Next, the optimization unit 203 totals the number of exit candidates inthe exit candidate list for each original component plane, and writesthe calculated total number of exit candidates to the area correspondingto the exit candidate list. An example of the generated exit candidatelist is shown in FIG. 54.

Next, the optimization unit 203 selects, from the exit candidate list,the original component plane having the least total number of exitcandidates, and sets the original component plane selected in this wayas a first component plane. The optimization unit 203 then selects thenext component plane having the greatest number of exit candidates, andsets the next component plane selected in this way as a second componentplane. By repeating this procedure, a plurality of component planes andtheir component planes are successively selected.

The following describes the aforementioned procedure, with use of theexit candidate list shown in FIG. 54 as an example.

-   -   1) The optimization unit 203 selects the original component        plane having the lowest total number of exit candidates, from        the exit candidate list. In the exit candidate list shown in        FIG. 54, the exit candidate totals are “5”, “4” and “3”, the        lowest exit candidate total being “3”. Here, the original        component planes D and E which both have an exit candidate total        of “0” are excluded. The lowest exit candidate total of “3” is        that of the original component plane C, and therefore the        optimization unit 203 selects the original component plane C.        The original component plane C selected in this way is set as        the first component plane.    -   2) Next, the optimization unit 203 selects, for the selected        original component plane C, the next component plane having the        greatest exit candidate total. The exit candidate totals of the        original component plane are “1”, “2”, “0” and “0”. Since the        greatest exit candidate total is “2”, the optimization unit 203        selects the next component plane B, and sets the next component        plane B selected in this way as the second component plane.

In this way, the order of two component planes is determined, i.e.,component plane C, component plane B.

Subsequently, the optimization unit 203 repeats the describedprocessing, resulting in the order of three component planes beingdetermined, i.e., component plane C, component plane B, and thencomponent plane A.

The optimization unit 203 rearranges the pieces of component informationin the plane list so as to be in the order of component planesdetermined in this way.

Note that the order generated according to the exit candidate list shownas an example in FIG. 54 is, coincidentally, the same as the order inthe plane list shown as an example in FIG. 53. Consequently, rearrangingthe pieces of component information included in the plane list does notchange the order.

<Generation of Optimum Path Within the Component Plane>

The optimization unit 203 repeats the following processing for eachcomponent plane.

-   -   1) The optimization unit 203 selects one exit candidate in the        component plane.    -   2) Next, the optimization unit 203 generates a cluster by        linking all components in order starting from the selected exit        candidate, so that the tact is a minimum.    -   3) If a path occurs that causes a loss in tact, the optimization        unit 203 divides the path, and generates a plurality of        clusters.

<3D Path Generation>

The optimization unit 203 generates paths connecting the clusters oneach component plane in the Z axis direction, so that the Z movement isa minimum. Here, the exit candidate in each component plane is the pointwhere the path leads to another component plane.

(2) Information Storage Unit 205

The information storage unit 205 has a plane list and an exit candidatelist.

<Plane List>

The plane list, as shown in one example in FIG. 53, has an area forstoring a plurality of pieces of component plane information, each ofwhich is composed of a component name, an XY speed, a component count,and other items.

The component names, XY speed, and component count are the same asdescribed earlier, and therefore a description thereof is omitted here.

<Exit Candidate List>

The exit candidate list, as shown in one example in FIG. 54, has an areafor storing the number of exit candidates to the next component planefor each original component plane, and an area for storing the exitcandidate total for each original component plane.

The number of exit candidates and the exit candidate total are asdescribed earlier, and therefore a description thereof is omitted here.

5.2 Operations by the Optimization Apparatus 200

The following describes operations by the optimization apparatus 200.

(1) Outline of Overall Operations by the Optimization Apparatus 200

The following describes an outline of overall operations by theoptimization unit 200, with use of the flowchart in FIG. 55.

The optimization unit 203 rearranges the component name list so as to bein descending order of XY speed and descending order of component count,and generates component planes (step S501). The optimization unit 203rearranges the component planes and generates a plane list (step S502),generates the optimum path in the component plane, thereby generating acluster (step S503), and generates a 3D path by generating paths thatconnect the clusters in each plane in the Z axis direction, so that Zmovement is a minimum (step S504).

(2) Operations for Rearranging the Component Planes

The following describes operations for rearranging the component planes,with use of the flowchart in FIG. 56.

The optimization unit 203 generates an exit candidate list (step S510),selects the original component plane having the lowest exit candidatetotal (step S511), and when finished selecting (step S512), rearrangesthe pieces of component information in the plane list, according to theorder of the selected component planes (step S514), and ends therearrangement processing.

If the selection is not finished (step S512), the optimization unit 203selects, from among the selected original component planes, the formercomponent candidate having the greatest amount of exit candidates (stepS513), and returns to step S511 and repeats the processing.

(3) Optimum Path Generation in Component Planes

The following describes operations for generating optimization paths inthe component planes, with use of the flowchart in FIG. 57.

The optimization unit 203 repeats the processing from steps S531 to S535for each component plane.

The optimization unit 203 selects one exit candidate from the componentplane (step S532), and generates one cluster by linking all componentsin order starting from the selected exit candidate, so that the tact isa minimum (step S533). If there is a loss in tact, the optimization unit203 divides the path that is the cause of the tact loss, therebygenerating a plurality of clusters (step S534).

5.3 Conclusion

According to the fifth embodiment, imaginary component planes aregenerated for each type of electronic component and arranged in apredetermined order, the order of the component planes is rearranged, anoptimum path connecting each component in the component plane isgenerated, and a 3D path that connects the component planes is generatedby connecting the path in each component plane with the path in anothercomponent plane. This enables the shortest path to be determined, andenables the next electronic component to be placed to be determined inthe Z movement tact.

6. Other Embodiments

The present invention has been described based on the above preferredembodiment, however the present invention is not limited to thesepreferred embodiments. The following cases are included in the presentinvention.

-   -   (1) The present invention may be methods shown by the above.        Furthermore, the methods may be a computer program realized by a        computer, and may be a digital signal of the computer program.

Furthermore, the present invention may be a computer-readable recordingmedium such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD-ROM,a DVD-RAM or a semiconductor memory, that stores the computer program orthe digital signal. Furthermore, the present invention may be thecomputer program or the digital signal recorded on any of theaforementioned recording media.

Furthermore, the present invention may be the computer program or thedigital signal transmitted on a electric communication line, a wirelessor wired communication line, or a network of which the Internet isrepresentative.

Furthermore, the present invention may be a computer system thatincludes a microprocessor and a memory, the memory storing the computerprogram, and the microprocessor operating according to the computerprogram.

Furthermore, by transferring the program or the digital signal to therecording medium apparatus, or by transferring the program or thedigital signal via a network or the like, the program or the digitalsignal may be executed by another independent computer system.

(2) The present invention may be any combination of the above-describedembodiment and modifications. 7. Effects of the invention

As described, the present invention is the present invention is anoptimization apparatus in an electronic component placement systemfurther including two or more placement apparatuses that placeelectronic components on a circuit board, the optimization apparatusoptimizing a placement order in which the electronic components areplaced on the circuit board by the placement apparatuses and including:a first assignment unit operable to assign each type of electroniccomponent to one of the placement apparatuses, thereby determining afirst assignment for each type of electronic component; a firstcalculation unit operable to calculate, for each placement apparatus, afirst placement time required for the placement apparatus to place allelectronic components assigned thereto according to the firstassignments on the circuit board; a second assignment unit operable toselect two placement apparatuses from the placement apparatuses, select,for each of the two selected placement apparatuses, one type ofelectronic component that has been assigned to the placement apparatus,and determine a second assignment by swapping the two selected types ofelectronic components between the two placement apparatuses; a secondcalculation unit operable to calculate, for each of the two placementapparatuses, a second placement time required for the placementapparatus to place all electronic components assigned thereto accordingto the second assignment on the circuit board; and an adoptiondetermination unit operable to determine adoption of one of the firstassignment and the second assignment that enables a shortest placementtime, by comparing a greatest first placement time and a greatest secondplacement time from among the first placement times and the secondplacement times calculated for the two placement apparatuses selectedfor interchanging by the second assignment unit.

According to the stated structure, an effect is achieved of placementtimes being more even between placement apparatuses.

Here, the first assignment unit may include: a component count storagesub-unit operable to store, for each type of electric component, acomponent count of electronic components of the type; a placement timecalculation sub-unit operable to calculate (i) for one electricalcomponent of each type and for each placement apparatus, a referenceplacement time required for the placement apparatus to place theelectrical component, and (ii) for each type of electrical component andfor each placement apparatus, using the component count of the type, aplacement time required for the placement apparatus to place allelectronic components of the type on the circuit board; and anassignment determination sub-unit operable to determine, using theplacement times calculated for each of the placement apparatuses foreach type of electronic component, an assignment of electroniccomponents of the type to one of the placement apparatuses.

According to the stated structure, the electronic components areassigned to the placement apparatuses based on a total placement timecalculated using the reference placement time determined for each typeof electric component and the component count. Therefore, electroniccomponents can be reliably assigned to the placement apparatuses.

Here, the second assignment unit may assign a type of electroniccomponent, from among the types of electronic components, that can onlybe placed by a particular placement apparatus to the particularplacement apparatus, the assignment being performed with priority overother types of electronic components.

According to the stated structure, a particular type of electroniccomponent is assigned to a particular placement apparatus. Therefore,the electronic components of the particular type can be reliably placedon the circuit board.

Here, the second assignment unit may assign a type of electroniccomponent that has, from among the placement times calculated for eachplacement apparatus and each type of electronic component, a placementtime smaller than a predetermined value, to a placement apparatus thatis upstream-most among placement apparatuses having a placement timesmaller than a predetermined value, the assignment being performed withpriority over other types of electronic components and other placementapparatuses.

According to the stated structure, electronic components having theshortest placement time are assigned to the placement apparatus locatedupstream-most. Therefore, electronic components that are placed at highspeed are assigned to the placement apparatus that is closer to theupstream side, and electronic components that are placed at low speedare assigned to the placement apparatus that is closer to the downstreamside.

Here, each of the first calculation unit and the second calculation unitmay include: a component count storage sub-unit operable to store, foreach electronic component type assigned to the placement apparatuses, acomponent count that indicates how many electronic components of thetype are to be placed on the circuit board; a total time calculationsub-unit operable to calculate, for each placement apparatus, a totalplacement time indicating a total time for placing all electroniccomponents assigned to the placement apparatus; and a placement timecalculation sub-unit operable to calculate, for each placement apparatusand each type of electronic component, a placement time for allelectronic components of the type assigned to the placement apparatus,by multiplying the calculated total placement time by the componentcount of the type of electronic component, and then dividing by acomponent count of all electronic components assigned to the placementapparatus, wherein the first calculation unit and the second calculationunit set the respective calculated placement times as the firstplacement times and the second placement times, respectively.

According to the stated structure, a placement time is calculated foreach type of electronic component assigned to the placement apparatuses,by multiplying the calculated total placement time with the componentcount of the electronic component type, and dividing by a componentcount of all electronic components assigned to the placement apparatus.Therefore, a placement time that is closer to the actual placement timecan be calculated. Here, each of the first calculation unit and thesecond calculation unit may include a request output sub-unit, tactcalculation sub-units equal in number to the placement apparatuses, anda placement time reception sub-unit, the tact calculation sub-unitscorresponding respectively to the placement apparatuses, wherein therequest generation sub-unit outputs to each placement apparatus, a typeidentifier identifying a type of electronic component, and a componentcount of electronic components assigned to the placement apparatus, eachtact calculation sub-unit calculates, based on the output typeidentifier and component count, a time required for the correspondingplacement apparatus to place the electronic components on the circuitboard, and outputs the calculated placement time, the placement timereception sub-unit receives each placement time, and the firstcalculation unit and the second calculation unit set the respectivereceived placement times as the first placement times.

According to the stated structure, each of the first calculation unitand the second calculation unit has tact calculation sub-units thatcorrespond to the placement apparatuses. Therefore, appropriateplacement times that can be calculated in accordance with the structureof the placement apparatuses.

Here, each of the first calculation unit and the second calculation unitmay include a request output sub-unit and a placement time receptionsub-unit, and each placement apparatus may include a tact calculationunit, wherein the request generation sub-unit outputs to each placementapparatus, a type identifier identifying a type of electronic component,and a component count of electronic components assigned to the placementapparatus, each tact calculation unit calculates, based on the outputtype identifier and component count, a time required for the placementapparatus to place the electronic components on the circuit board, andoutputs the calculated placement time, the placement time receptionsub-unit receives each placement time, and the first calculation unitand the second calculation unit set the respective received placementtimes as the first placement times.

According to the stated structure, each placement apparatus hascorresponding tact calculation units. Therefore, appropriate placementtimes that can be calculated in accordance with the structure of theplacement apparatuses.

Here, each of the first calculation unit and the second calculation unitmay include a request output sub-unit, conversion sub-units, tactcalculation sub-units, reverse conversion sub-units, and a placementtime reception sub-unit, the conversion sub-units, the tact calculationsub-units and the reversion conversion sub-units being equal in numberto and corresponding respectively to the placement apparatuses, whereinthe request generation sub-unit outputs to each placement apparatus, atype identifier identifying a type of electronic component, and acomponent count of electronic components assigned to the placementapparatus, each conversion unit coverts the output type identifier andcomponent count to a format compatible with the corresponding placementapparatus, each tact calculation sub-unit calculates, based on theconverted type identifier and component count, a time required for thecorresponding placement apparatus to place the electronic components onthe circuit board, and outputs the calculated placement time, eachreverse conversion sub-unit converts the output placement time to aformat compatible with the optimization apparatus, the placement timereception sub-unit receives the converted placement times, and the firstcalculation unit and the second calculation unit set the respectivereceived, converted placement times as the first placement times.

According to the stated structure, the conversion sub-units and thereverse conversion sub-units perform conversion and reverse conversionfor each placement apparatus. Therefore, information can be convertedand reverse converted according to a data format unique to eachplacement apparatus.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration apparatus for changing movement speed information relating tothe circuit board when the electronic components are placed thereon, andincluding: a movement speed storage unit operable to store circuit boardmovement speed information for each type of electronic component; anassignment storage unit operable to store, for each type of electroniccomponent, an assignment of the type of electronic component type to oneof the placement apparatuses; a selection unit operable to select, fromthe plurality of placement apparatuses, two adjacent placementapparatuses; an extraction unit operable to extract slowest movementspeed information having a slowest movement speed among electroniccomponent types assigned to a placement apparatus that is locatedupstream-most of the two selected placement apparatuses; an extractionunit operable to extract movement speed information having a fastermovement speed than the extracted slowest movement speed informationfrom among electronic component types assigned to a placement apparatusthat is located downstream-most of the two selected placementapparatuses; and a replacement unit operable to replace the extractedmovement speed information with the slowest movement speed information,in the movement speed information storage unit.

According to the stated structure, an electronic component informationtable in which the XY speed of the downstream process apparatus isarranged so as not to exceed the XY speed of the upstream processapparatus.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus in which a feeder that supplies at least one electroniccomponent of at least one type of electronic component moves to asuction position of a placement head, and the placement head picks upelectronic components from the feeder and places the electroniccomponents on a circuit board, the optimization apparatus including: afirst selection unit operable to select one of the electronic componentsand set the electronic component as a first electronic component; acalculation unit operable to select electronic components other than thefirst electronic component one at a time, set the selected electroniccomponent as a second electronic component, and calculate (a) a headmovement time required for the placement head of the placement apparatusto move relatively from a position where the first electronic componentis to be placed to a position where the second electronic component isto be placed, (b) a feeder movement time required for a feeder thatsupplies the second electronic component to move to the placement headsuction position if the second electronic is to be placed, and (c) areturn movement time required for a feeder that supplies the firstelectronic component to move to the placement head suction positionafter the second electronic component is placed; and a selection unitoperable to select, based on the head movement times, feeder movementtimes and return movement times calculated for all electronic componentsother than the first electronic component, an electronic component fromamong all the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.

According to the stated structure, the feeder that supplies electroniccomponents does not make large movements, and tact loss can be reduced.

Here, the selection unit includes an operation sub-unit operable, foreach electronic component other than the first electronic component, tocalculate a value that is a total of (a) twice the return time and (b)the feeder movement time, and adopt the greater of the calculated headmovement time and the calculated value; and an electronic componentselection sub-unit operable to select, as a next electronic component tobe placed after the first electronic component, an electronic componentcorresponding to a smallest value among all the values adopted by theoperation sub-unit for the electronic components other than the firstelectronic component.

According to the stated structure, a value that is the total of twice areturn time and a feeder movement time is calculated, and a value whichis the greater of a calculated head movement time and the calculatedvalue is adopted. Therefore, the placement time can be predicted withmore accuracy.

Here, the placement apparatus includes a rotary placement head, and theselection unit selects one electronic component based on the calculatedhead movement times, feeder movement times, return movement times, and arotary placement head half-rotation time.

According to the stated structure, the placement time in a placementapparatus that has a rotary placement head can be predicted with moreaccuracy.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus that places electronic components on a circuit board byrepeatedly performing tasks until all electronic components to be placedhave been placed, each task being composed of: a feeder that supplies atleast one electric component of at least one type of electroniccomponent moving to a suction position of a placement head that includesat least one nozzle, and the placement head picking up at least oneelectronic component from the feeder and placing the at least one pickedup electronic component on a circuit board, the optimization apparatusincluding: a task information storage unit operable to store taskinformation for each task, each task information including (a) aplacement order of electronic components in the task, (b) placementpositions, each of which indicates where a different one of theelectronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents; a first generation unit operable to generate an X coordinatelist by rearranging the task information for all tasks so as to be indescending order of X coordinate of placement position of an electroniccomponent last in the placement order in each task information; a secondgeneration unit operable to generate a Z coordinate list by rearrangingthe task information so as to be in ascending order of a greatest feederposition in each task information; and an assignment unit operable toalternately select a task from a top of the X coordinate list and a topof the Z coordinate list in the stated order, and assign each task aposition in the placement order according to an order in which the taskswere selected.

According to the stated structure, tasks are selected alternately fromthe top of the X coordinate list and the top of the Z coordinate list,and the tasks are given a position in the placement order according tothe order in which the tasks were selected. This has an effect ofreducing crossover between the paths of the tasks.

Here, the optimization apparatus further includes: a calculation unitoperable to calculate a first total movement amount that indicates adistance that the head moves if all tasks are executed in the placementorder assigned by the assignment unit; a task selection unit operable toselect two tasks; an interchange unit operable to swap the two selectedtasks with each other in the placement order; a calculation unitoperable to calculate a second total movement amount that indicates adistance that the head moves if all tasks are executed in the placementorder in which the interchange unit has interchanged the two tasks; andan adoption sub-unit operable to adopt a placement order of all tasksthat corresponds to a smaller of the first total movement amount and thesecond total movement amount.

According to the stated structure, a placement order with an evenshorter placement time can be employed.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus in which a feeder that supplies at least one electroniccomponent of at least one type of electronic component move to a suctionposition of a placement head, and the placement head picks up electroniccomponents from the feeder and places the electronic components on acircuit board, the optimization apparatus including: a plane generationunit operable to generate, for each electronic component type, animaginary component plane that includes positions in which electroniccomponents of the type are to be placed, and arrange the generatedcomponent planes in a predetermined order; a rearrangement unit operableto rearrange the component planes; an optimum path generation unitoperable to generate, within each component plane, an optimum path thatconnects the components on the component plane; and a 3D path generationunit operable to generate a 3D path that connects the component planes,by connecting the path within each component plane with the paths withinother component planes.

According to the stated structure, an imaginary component plane isgenerate for each type of electronic component, and the component planesare arranged in a predetermined order. Then, the order of the componentplanes is switched, and in each component plane an optimum path isgenerated that connects the electronic components in the componentplane. Next, the paths in the component planes are connected to eachother with 3D paths. This enables the shortest path to be determined.

Here, the rearrangement unit includes an extraction sub-unit operable toextract, for each component plane, an exit electronic component, theexit electronic component being an electronic component for which theplacement head movement time from the exit component on an originalcomponent plane that is the component plane, to an electronic componenton a next component plane that is another component plane, is within afeeder movement time; a calculation sub-unit operable to calculate, foreach original component plane and each next component plane, an exitcandidate count that is a total number of exit electronic components,and calculate, for each original component plane, an exit candidatetotal that is a total number of exit electronic components; a selectionsub-unit operable to select an original component plane having asmallest exit candidate total and set the selected original componentplane as a first component plane, and select a next component plane thathas a greatest exit candidate count with respect to selected the firstcomponent plane, and set the selected next component plane as a secondcomponent plane; and a component plane interchange sub-unit operable tointerchange the first component plane and the second component plane ina component plane order. Furthermore, the extraction unit sets asquare-shaped area, each side of the square-shaped area being a lengthcorresponding to a movement time of a feeder, and a center of thesquare-shaped area being a position where an exit electronic componentis to be placed, and, if an electronic component on the next componentplane falls within the set square area, judges that the placement headmovement time is less than the feeder movement time.

According to the stated structure, the next electronic component to bemounted within the Z movement tact can be determined.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration apparatus for changing movement speed information relating tothe circuit board when the electronic components are placed thereon, andincluding: a movement speed storage unit operable to store circuit boardmovement speed information for each type of electronic component; anassignment storage unit operable to store, for each type of electroniccomponent, an assignment of the type of electronic component type to oneof the placement apparatuses; a selection unit operable to select, fromthe plurality of placement apparatuses, two adjacent placementapparatuses; an extraction unit operable to extract slowest movementspeed information having a slowest movement speed among electroniccomponent types assigned to a placement apparatus that is locatedupstream-most of the two selected placement apparatuses; an extractionunit operable to extract movement speed information having a fastermovement speed than the extracted slowest movement speed informationfrom among electronic component types assigned to a placement apparatusthat is located downstream-most of the two selected placementapparatuses; and a replacement unit operable to replace the extractedmovement speed information with the slowest movement speed information,in the movement speed information storage unit.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration apparatus for changing tact information relating to thecircuit board when the electronic components are placed thereon, andincludes: a tact storage unit operable to store circuit board tactinformation for each type of electronic component; an assignment storageunit operable to store, for each type of electronic component, anassignment of the type of electronic component type to one of theplacement apparatuses; a selection unit operable to select, from theplurality of placement apparatuses, two adjacent placement apparatuses;an extraction unit operable to extract slowest tact information having aslowest tact among electronic component types assigned to a placementapparatus that is located upstream-most of the two selected placementapparatuses; an extraction unit operable to extract tact informationhaving a faster tact than the extracted slowest tact information fromamong electronic component types assigned to a placement apparatus thatis located downstream-most of the two selected placement apparatuses;and a replacement unit operable to replace the extracted tactinformation with the slowest tact information, in the tact informationstorage unit.

Furthermore, the present invention is a computer-readable recordingmedium storing thereon circuit board movement speed information relatingto different types of electronic component, and storing thereon movementspeed information that has been replaced by the information generationapparatus.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration method used in an information generation apparatus forchanging movement speed information relating to the circuit board whenthe electronic components are placed thereon, the information generationapparatus including: a movement speed storage unit operable to storecircuit board movement speed information for each type of electroniccomponent; and an assignment storage unit operable to store, for eachtype of electronic component, an assignment of the type of electroniccomponent type to one of the placement apparatuses, and the informationgeneration method including: a selection step of selecting, from theplurality of placement apparatuses, two adjacent placement apparatuses;an extraction step of extracting slowest movement speed informationhaving a slowest movement speed among electronic component typesassigned to a placement apparatus that is located upstream-most of thetwo selected placement apparatuses; an extraction step of extractingmovement speed information having a faster movement speed than theextracted slowest movement speed information from among electroniccomponent types assigned to a placement apparatus that is locateddownstream-most of the two selected placement apparatuses; and areplacement unit operable to replace the extracted movement speedinformation with the slowest movement speed information, in the movementspeed information storage unit.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an informationgeneration program used in a computer for changing movement speedinformation relating to the circuit board when the electronic componentsare placed thereon, the computer including: a movement speed storageunit operable to store circuit board movement speed information for eachtype of electronic component; and an assignment storage unit operable tostore, for each type of electronic component, an assignment of the typeof electronic component type to one of the placement apparatuses, andthe information generation method including: a selection step ofselecting, from the plurality of placement apparatuses, two adjacentplacement apparatuses; an extraction step of extracting slowest movementspeed information having a slowest movement speed among electroniccomponent types assigned to a placement apparatus that is locatedupstream-most of the two selected placement apparatuses; an extractionstep of extracting movement speed information having a faster movementspeed than the extracted slowest movement speed information from amongelectronic component types assigned to a placement apparatus that islocated downstream-most of the two selected placement apparatuses; and areplacement unit operable to replace the extracted movement speedinformation with the slowest movement speed information, in the movementspeed information storage unit.

Furthermore, the present invention is, in an electronic componentplacement system composed of at least one placement apparatus thatplaces electronic components on a circuit board, an a computer-readablerecording medium having recorded thereon an information generationprogram used in a computer for changing movement speed informationrelating to the circuit board when the electronic components are placedthereon, the computer including: a movement speed storage unit operableto store circuit board movement speed information for each type ofelectronic component; and an assignment storage unit operable to store,for each type of electronic component, an assignment of the type ofelectronic component type to one of the placement apparatuses, and theinformation generation program including: a selection step of selecting,from the plurality of placement apparatuses, two adjacent placementapparatuses; an extraction step of extracting slowest movement speedinformation having a slowest movement speed among electronic componenttypes assigned to a placement apparatus that is located upstream-most ofthe two selected placement apparatuses; an extraction step of extractingmovement speed information having a faster movement speed than theextracted slowest movement speed information from among electroniccomponent types assigned to a placement apparatus that is locateddownstream-most of the two selected placement apparatuses; and areplacement unit operable to replace the extracted movement speedinformation with the slowest movement speed information, in the movementspeed information storage unit.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus in which a feeder that supplies at least one electroniccomponent of at least one type of electronic component moves to asuction position of a placement head, and the placement head picks upelectronic components from the feeder and places the electroniccomponents on a circuit board, the optimization apparatus including: afirst selection unit operable to select one of the electronic componentsand set the electronic component as a first electronic component; acalculation unit operable to select electronic components other than thefirst electronic component one at a time, set the selected electroniccomponent as a second electronic component, and calculate (a) a headmovement time required for the placement head of the placement apparatusto move relatively from a position where the first electronic componentis to be placed to a position where the second electronic component isto be placed, (b) a feeder movement time required for a feeder thatsupplies the second electronic component to move to the placement headsuction position if the second electronic is to be placed, and (c) areturn movement time required for a feeder that supplies the firstelectronic component to move to the placement head suction positionafter the second electronic component is placed; and a selection unitoperable to select, based on the head movement times, feeder movementtimes and return movement times calculated for all electronic componentsother than the first electronic component, an electronic component fromamong all the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.

Here, the selection unit includes an operation sub-unit operable, foreach electronic component other than the first electronic component, tocalculate a value that is a total of (a) twice the return time and (b)the feeder movement time, and adopt the greater of the calculated headmovement time and the calculated value; and an electronic componentselection sub-unit operable to select, as a next electronic component tobe placed after the first electronic component, an electronic componentcorresponding to a smallest value among all the values adopted by theoperation sub-unit for the electronic components other than the firstelectronic component.

Here, the placement apparatus includes a rotary placement head, and theselection unit selects one electronic component based on the calculatedhead movement times, feeder movement times, return movement times, and arotary placement head half-rotation time.

Furthermore, the present invention is an optimization method used in anoptimization apparatus for optimizing an electronic component placementorder used in a placement apparatus in which a feeder that supplies atleast one electronic component of at least one type of electroniccomponent moves to a suction position of a placement head, and theplacement head picks up electronic components from the feeder and placesthe electronic components on a circuit board, the optimization methodincluding: a first selection step of selecting one of the electroniccomponents and set the electronic component as a first electroniccomponent; a calculation step of selecting electronic components otherthan the first electronic component one at a time, setting the selectedelectronic component as a second electronic component, and calculating(a) ahead movement time required for the placement head of the placementapparatus to move relatively from a position where the first electroniccomponent is to be placed to a position where the second electroniccomponent is to be placed, (b) a feeder movement time required for afeeder that supplies the second electronic component to move to theplacement head suction position if the second electronic is to beplaced, and (c) are turn movement time required for a feeder thatsupplies the first electronic component to move to the placement headsuction position after the second electronic component is placed; and aselection step of selecting, based on the head movement times, feedermovement times and return movement times calculated for all electroniccomponents other than the first electronic component, an electroniccomponent from among all the electronic components, other than the firstelectronic component, that is to be placed next after the firstelectronic component.

Furthermore, the present invention is an optimization program used in acomputer for optimizing an electronic component placement order used ina placement apparatus in which a feeder that supplies at least oneelectronic component of at least one type of electronic component movesto a suction position of a placement head, and the placement head picksup electronic components from the feeder and places the electroniccomponents on a circuit board, the optimization program including: afirst selection step of selecting one of the electronic components andset the electronic component as a first electronic component; acalculation step of selecting electronic components other than the firstelectronic component one at a time, setting the selected electroniccomponent as a second electronic component, and calculating (a) a headmovement time required for the placement head of the placement apparatusto move relatively from a position where the first electronic componentis to be placed to a position where the second electronic component isto be placed, (b) a feeder movement time required for a feeder thatsupplies the second electronic component to move to the placement headsuction position if the second electronic is to be placed, and (c) areturn movement time required for a feeder that supplies the firstelectronic component to move to the placement head suction positionafter the second electronic component is placed; and a selection step ofselecting, based on the head movement times, feeder movement times andreturn movement times calculated for all electronic components otherthan the first electronic component, an electronic component from amongall the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.

Furthermore, the present invention is a computer-readable recordingmedium having recorded thereon an optimization program used in acomputer for optimizing an electronic component placement order used ina placement apparatus in which a feeder that supplies at least oneelectronic component of at least one type of electronic component movesto a suction position of a placement head, and the placement head picksup electronic components from the feeder and places the electroniccomponents on a circuit board, the optimization program including: afirst selection step of selecting one of the electronic components andset the electronic component as a first electronic component; acalculation step of selecting electronic components other than the firstelectronic component one at a time setting the selected electroniccomponent as a second electronic component, and calculating (a) a headmovement time required for the placement head of the placement apparatusto move relatively from a position where the first electronic componentis to be placed to a position where the second electronic component isto be placed, (b) a feeder movement time required for a feeder thatsupplies the second electronic component to move to the placement headsuction position if the second electronic is to be placed, and (c) areturn movement time required for a feeder that supplies the firstelectronic component to move to the placement head suction positionafter the second electronic component is placed; and a selection step ofselecting, based on the head movement times, feeder movement times andreturn movement times calculated for all electronic components otherthan the first electronic component, an electronic component from amongall the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus that places electronic components on a circuit board byrepeatedly performing tasks until all electronic components to be placedhave been placed, each task being composed of: a feeder that supplies atleast one electric component of at least one type of electroniccomponent moving to a suction position of a placement head that includesat least one nozzle, and the placement head picking up at least oneelectronic component from the feeder and placing the at least one pickedup electronic component on a circuit board, the optimization apparatusincluding: a task information storage unit operable to store taskinformation for each task, each task information including (a) aplacement order of electronic components in the task, (b) placementpositions, each of which indicates where a different one of theelectronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents; a first generation unit operable to generate an X coordinatelist by rearranging the task information for all tasks so as to be indescending order of X coordinate of placement position of an electroniccomponent last in the placement order in each task information; a secondgeneration unit operable to generate a Z coordinate list by rearrangingthe task information so as to be in ascending order of a greatest feederposition in each task information; and an assignment unit operable toalternately select a task from a top of the X coordinate list and a topof the Z coordinate list in the stated order, and assign each task aposition in the placement order according to an order in which the taskswere selected.

Here, the optimization apparatus further includes: a calculation unitoperable to calculate a first total movement amount that indicates adistance that the head moves if all tasks are executed in the placementorder assigned by the assignment unit; a task selection unit operable toselect two tasks; an interchange unit operable to swap the two selectedtasks with each other in the placement order; a calculation unitoperable to calculate a second total movement amount that indicates adistance that the head moves if all tasks are executed in the placementorder in which the interchange unit has interchanged the two tasks; andan adoption sub-unit operable to adopt a placement order of all tasksthat corresponds to a smaller of the first total movement amount and thesecond total movement amount.

Furthermore, the present invention is an optimization method used in anoptimization apparatus for optimizing an electronic component placementorder used in a placement apparatus that places electronic components ona circuit board by repeatedly performing tasks until all electroniccomponents to be placed have been placed, each task being composed of: afeeder that supplies at least one electric component of at least onetype of electronic component moving to a suction position of a placementhead that includes at least one nozzle, and the placement head pickingup at least one electronic component from the feeder and placing the atleast one picked up electronic component on a circuit board, theoptimization apparatus including: a task information storage unitoperable to store task information for each task, each task informationincluding (a) a placement order of electronic components in the task,(b) placement positions, each of which indicates where a different oneof the electronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents, and the optimization method including: a first generationstep of generating an X coordinate list by rearranging the taskinformation for all tasks so as to be in descending order of Xcoordinate of placement position of an electronic component last in theplacement order in each task information; a second generation step ofgenerating a Z coordinate list by rearranging the task information so asto be in ascending order of a greatest feeder position in each taskinformation; and an assignment step of alternately selecting a task froma top of the X coordinate list and a top of the Z coordinate list in thestated order, and assigning each task a position in the placement orderaccording to an order in which the tasks were selected.

Furthermore, the present invention is an optimization program used in acomputer for optimizing an electronic component placement order used ina placement apparatus that places electronic components on a circuitboard by repeatedly performing tasks until all electronic components tobe placed have been placed, each task being composed of: a feeder thatsupplies at least one electric component of at least one type ofelectronic component moving to a suction position of a placement headthat includes at least one nozzle, and the placement head picking up atleast one electronic component from the feeder and placing the at leastone picked up electronic component on a circuit board, the computerincluding: a task information storage unit operable to store taskinformation for each task, each task information including (a) aplacement order of electronic components in the task, (b) placementpositions, each of which indicates where a different one of theelectronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents, and the optimization program including: a first generationstep of generating an X coordinate list by rearranging the taskinformation for all tasks so as to be in descending order of Xcoordinate of placement position of an electronic component last in theplacement order in each task information; a second generation step ofgenerating a Z coordinate list by rearranging the task information so asto be in ascending order of a greatest feeder position in each taskinformation; and an assignment step of alternately selecting a task froma top of the X coordinate list and a top of the Z coordinate list in thestated order, and assigning each task a position in the placement orderaccording to an order in which the tasks were selected.

Furthermore, the present invention is a computer-readable recordingmedium having recorded thereon an optimization program used in acomputer for optimizing an electronic component placement order used ina placement apparatus that places electronic components on a circuitboard by repeatedly performing tasks until all electronic components tobe placed have been placed, each task being composed of: a feeder thatsupplies at least one electric component of at least one type ofelectronic component moving to a suction position of a placement headthat includes at least one nozzle, and the placement head picking up atleast one electronic component from the feeder and placing the at leastone picked up electronic component on a circuit board, the computerincluding: a task information storage unit operable to store taskinformation for each task, each task information including (a) aplacement order of electronic components in the task, (b) placementpositions, each of which indicates where a different one of theelectronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents, and the optimization program including: a first generationstep of generating an X coordinate list by rearranging the taskinformation for all tasks so as to be in descending order of Xcoordinate of placement position of an electronic component last in theplacement order in each task information; a second generation step ofgenerating a Z coordinate list by rearranging the task information so asto be in ascending order of a greatest feeder position in each taskinformation; and an assignment step of alternately selecting a task froma top of the X coordinate list and a top of the Z coordinate list in thestated order, and assigning each task a position in the placement orderaccording to an order in which the tasks were selected.

Furthermore, the present invention is an optimization apparatus foroptimizing an electronic component placement order used in a placementapparatus in which a feeder that supplies at least one electroniccomponent of at least one type of electronic component move to a suctionposition of a placement head, and the placement head picks up electroniccomponents from the feeder and places the electronic components on acircuit board, the optimization apparatus including: a plane generationunit operable to generate, for each electronic component type, animaginary component plane that includes positions in which electroniccomponents of the type are to be placed, and arrange the generatedcomponent planes in a predetermined order; a rearrangement unit operableto rearrange the component planes; an optimum path generation unitoperable to generate, within each component plane, an optimum path thatconnects the components on the component plane; and a 3D path generationunit operable to generates a 3D path that connects the component planes,by connecting the path within each component plane with the paths withinother component planes.

Here, the rearrangement unit includes an extraction sub-unit operable toextract, for each component plane, an exit electronic component, theexit electronic component being an electronic component for which theplacement head movement time from the exit component on an originalcomponent plane that is the component plane, to an electronic componenton a next component plane that is another component plane, is within afeeder movement time; a calculation sub-unit operable to calculate, foreach original component plane and each next component plane, an exitcandidate count that is a total number of exit electronic components,and calculate, for each original component plane, an exit candidatetotal that is a total number of exit electronic components; a selectionsub-unit operable to select an original component plane having asmallest exit candidate total and set the selected original componentplane as a first component plane, and select a next component plane thathas a greatest exit candidate count with respect to selected the firstcomponent plane, and set the selected next component plane as a secondcomponent plane; and a component plane interchange sub-unit operable tointerchange the first component plane and the second component plane ina component plane order.

Here, the extraction unit sets a square-shaped area, each side of thesquare-shaped area being a length corresponding to a movement time of afeeder, and a center of the square-shaped area being a position where anexit electronic component is to be placed, and, if an electroniccomponent on the next component plane falls within the set square area,judges that the placement head movement time is less than the feedermovement time.

Furthermore, the present invention is an optimization method used in anoptimization apparatus for optimizing an electronic component placementorder used in a placement apparatus in which a feeder that supplies atleast one electronic component of at least one type of electroniccomponent move to a suction position of a placement head, and theplacement head picks up electronic components from the feeder and placesthe electronic components on a circuit board, the optimization methodincluding: a plane generation step of generating, for each electroniccomponent type, an imaginary component plane that includes positions inwhich electronic components of the type are to be placed, and arrangingthe generated component planes in a predetermined order; a rearrangementstep of rearranging the component planes; an optimum path generationstep of generating, within each component plane, an optimum path thatconnects the components on the component plane; and a 3D path generationstep of generating a 3D path that connects the component planes, byconnecting the path within each component plane with the paths withinother component planes.

Furthermore, the present invention is an optimization program used in acomputer for optimizing an electronic component placement order used ina placement apparatus in which a feeder that supplies at least oneelectronic component of at least one type of electronic component moveto a suction position of a placement head, and the placement head picksup electronic components from the feeder and places the electroniccomponents on a circuit board, the optimization program including: aplane generation step of generating, for each electronic component type,an imaginary component plane that includes positions in which electroniccomponents of the type are to be placed, and arranging the generatedcomponent planes in a predetermined order; a rearrangement step ofrearranging the component planes; an optimum path generation step ofgenerating, within each component plane, an optimum path that connectsthe components on the component plane; and a 3D path generation step ofgenerating a 3D path that connects the component planes, by connectingthe path within each component plane with the paths within othercomponent planes.

Furthermore, the present invention is a computer-readable recordingmedium having recorded thereon an optimization program used in acomputer for optimizing an electronic component placement order used ina placement apparatus in which a feeder that supplies at least oneelectronic component of at least one type of electronic component moveto a suction position of a placement head, and the placement head picksup electronic components from the feeder and places the electroniccomponents on a circuit board, the optimization program including: aplane generation step of generating, for each electronic component type,an imaginary component plane that includes positions in which electroniccomponents of the type are to be placed, and arranging the generatedcomponent planes in a predetermined order; a rearrangement step ofrearranging the component planes; an optimum path generation step ofgenerating, within each component plane, an optimum path that connectsthe components on the component plane; and a 3D path generation step ofgenerating a 3D path that connects the component planes, by connectingthe path within each component plane with the paths within othercomponent planes.

INDUSTRIAL APPLICABILITY

The optimization apparatus of the present invention can be used toimprove efficiency of placing electronic components in a placementapparatus that places the electronic components on a circuit board.

1. An optimization apparatus that optimizes a placement order in whichelectronic components are placed on a circuit board by two or moreplacement apparatuses, wherein a first assignment of each type ofelectronic component to the placement apparatuses has been determined inadvance, and a first placement time has been calculated in advance foreach placement apparatus, each first placement time being a timerequired for the placement apparatus to place electronic componentsassigned thereto according to the first assignment on the circuit board,the optimization apparatus comprising: an assignment unit operable toselect two of the placement apparatuses, select, for each of the twoselected placement apparatuses, one type of electronic component thathas been assigned to the placement apparatus, and determine a secondassignment by swapping the two selected types of electronic componentsbetween the two placement apparatuses; a calculation unit operable tocalculate, for each of the two placement apparatuses, a second placementtime required for the placement apparatus to place on the circuit boardthe electronic components assigned thereto according to the secondassignment; and an assignment adoption unit operable to adopt, byreferring to the first placement time and the second placement time, oneof the first assignment and the second assignment that has a smallerplacement time.
 2. An optimization apparatus in an electronic componentplacement system further including two or more placement apparatusesthat place electronic components on a circuit board, the optimizationapparatus optimizing a placement order in which the electroniccomponents are placed on the circuit board by the placement apparatusesand comprising: a first assignment unit operable to assign each type ofelectronic component to one of the placement apparatuses, therebydetermining a first assignment for each type of electronic component; afirst calculation unit operable to calculate, for each placementapparatus, a first placement time required for the placement apparatusto place all electronic components assigned thereto according to thefirst assignments on the circuit board; a second assignment unitoperable to select two placement apparatuses from the placementapparatuses, select, for each of the two selected placement apparatuses,one type of electronic component that has been assigned to the placementapparatus, and determine a second assignment by swapping the twoselected types of electronic components between the two placementapparatuses; a second calculation unit operable to calculate, for eachof the two placement apparatuses, a second placement time required forthe placement apparatus to place all electronic components assignedthereto according to the second assignment on the circuit board; and anadoption determination unit operable to determine adoption of one of thefirst assignment and the second assignment that enables a shortestplacement time, by comparing a greatest first placement time and agreatest second placement time from among the first placement times andthe second placement times calculated for the two placement apparatusesselected for interchanging by the second assignment unit.
 3. Theoptimization apparatus of claim 2, wherein the first assignment unitincludes: a component count storage sub-unit operable to store, for eachtype of electric component, a component count of electronic componentsof the type; a placement time calculation sub-unit operable to calculate(i) for one electrical component of each type and for each placementapparatus, a reference placement time required for the placementapparatus to place the electrical component, and (ii) for each type ofelectrical component and for each placement apparatus, using thecomponent count of the type, a placement time required for the placementapparatus to place all electronic components of the type on the circuitboard; and an assignment determination sub-unit operable to determine,using the placement times calculated for each of the placementapparatuses for each type of electronic component, an assignment ofelectronic components of the type to one of the placement apparatuses.4. The optimization apparatus of claim 3, wherein the second assignmentunit assigns a type of electronic component, from among the types ofelectronic components, that can only be placed by a particular placementapparatus to the particular placement apparatus, the assignment beingperformed with priority over other types of electronic components. 5.The optimization apparatus of claim 4, wherein the second assignmentunit assigns a type of electronic component that has, from among theplacement times calculated for each placement apparatus and each type ofelectronic component, a placement time smaller than a predeterminedvalue, to a placement apparatus that is upstream-most among placementapparatuses having a placement time smaller than a predetermined value,the assignment being performed with priority over other types ofelectronic components and other placement apparatuses.
 6. Theoptimization apparatus of claim 5, wherein each of the first calculationunit and the second calculation unit includes: a component count storagesub-unit operable to store, for each electronic component type assignedto the placement apparatuses, a component count that indicates how manyelectronic components of the type are to be placed on the circuit board;a total time calculation sub-unit operable to calculate, for eachplacement apparatus, a total placement time indicating a total time forplacing all electronic components assigned to the placement apparatus;and a placement time calculation sub-unit operable to calculate, foreach placement apparatus and each type of electronic component, aplacement time for all electronic components of the type assigned to theplacement apparatus, by multiplying the calculated total placement timeby the component count of the type of electronic component, and thendividing by a component count of all electronic components assigned tothe placement apparatus, wherein the first calculation unit and thesecond calculation unit set the respective calculated placement times asthe first placement times and the second placement times, respectively.7. The optimization apparatus of claim 6, wherein each of the firstcalculation unit and the second calculation unit includes a requestoutput sub-unit, tact calculation sub-units equal in number to theplacement apparatuses, and a placement time reception sub-unit, the tactcalculation sub-units corresponding respectively to the placementapparatuses, the request generation sub-unit outputs to each placementapparatus, a type identifier identifying a type of electronic component,and a component count of electronic components assigned to the placementapparatus, each tact calculation sub-unit calculates, based on theoutput type identifier and component count, a time required for thecorresponding placement apparatus to place the electronic components onthe circuit board, and outputs the calculated placement time, theplacement time reception sub-unit receives each placement time, and thefirst calculation unit and the second calculation unit set therespective received placement times as the first placement times.
 8. Theoptimization apparatus of claim 6, wherein each of the first calculationunit and the second calculation unit includes a request output sub-unitand a placement time reception sub-unit, and each placement apparatusincludes a tact calculation unit, the request generation sub-unitoutputs to each placement apparatus, a type identifier identifying atype of electronic component, and a component count of electroniccomponents assigned to the placement apparatus, each tact calculationunit calculates, based on the output type identifier and componentcount, a time required for the placement apparatus to place theelectronic components on the circuit board, and outputs the calculatedplacement time, the placement time reception sub-unit receives eachplacement time, and the first calculation unit and the secondcalculation unit set the respective received placement times as thefirst placement times.
 9. The optimization apparatus of claim 6, whereineach of the first calculation unit and the second calculation unitincludes a request output sub-unit, conversion sub-units, tactcalculation sub-units, reverse conversion sub-units, and a placementtime reception sub-unit, the conversion sub-units, the tact calculationsub-units and the reversion conversion sub-units being equal in numberto and corresponding respectively to the placement apparatuses, therequest generation sub-unit outputs to each placement apparatus, a typeidentifier identifying a type of electronic component, and a componentcount of electronic components assigned to the placement apparatus, eachconversion unit coverts the output type identifier and component countto a format compatible with the corresponding placement apparatus, eachtact calculation sub-unit calculates, based on the converted typeidentifier and component count, a time required for the correspondingplacement apparatus to place the electronic components on the circuitboard, and outputs the calculated placement time, each reverseconversion sub-unit converts the output placement time to a formatcompatible with the optimization apparatus, the placement time receptionsub-unit receives the converted placement times, and the firstcalculation unit and the second calculation unit set the respectivereceived, converted placement times as the first placement times. 10.The optimization apparatus of claim 2, for changing movement speedinformation relating to the circuit board when the electronic componentsare placed thereon, and further comprising: a movement speed storageunit operable to store circuit board movement speed information for eachtype of electronic component; an assignment storage unit operable tostore, for each type of electronic component, an assignment of the typeof electronic component type to one of the placement apparatuses; aselection unit operable to select, from the plurality of placementapparatuses, two adjacent placement apparatuses; an extraction unitoperable to extract slowest movement speed information having a slowestmovement speed among electronic component types assigned to a placementapparatus that is located upstream-most of the two selected placementapparatuses; an extraction unit operable to extract movement speedinformation having a faster movement speed than the extracted slowestmovement speed information from among electronic component typesassigned to a placement apparatus that is located downstream-most of thetwo selected placement apparatuses; and a replacement unit operable toreplace the extracted movement speed information with the slowestmovement speed information, in the movement speed information storageunit.
 11. The optimization apparatus of claim 2, for optimizing anelectronic component placement order used in a placement apparatus inwhich a feeder that supplies at least one electronic component of atleast one type of electronic component moves to a suction position of aplacement head, and the placement head picks up electronic componentsfrom the feeder and places the electronic components on a circuit board,the optimization apparatus further comprising: a first selection unitoperable to select one of the electronic components and set theelectronic component as a first electronic component; a calculation unitoperable to select electronic components other than the first electroniccomponent one at a time, set the selected electronic component as asecond electronic component, and calculate (a) a head movement timerequired for the placement head of the placement apparatus to moverelatively from a position where the first electronic component is to beplaced to a position where the second electronic component is to beplaced, (b) a feeder movement time required for a feeder that suppliesthe second electronic component to move to the placement head suctionposition if the second electronic is to be placed, and (c) a returnmovement time required for a feeder that supplies the first electroniccomponent to move to the placement head suction position after thesecond electronic component is placed; and a selection unit operable toselect, based on the head movement times, feeder movement times andreturn movement times calculated for all electronic components otherthan the first electronic component, an electronic component from amongall the electronic components, other than the first electroniccomponent, that is to be placed next after the first electroniccomponent.
 12. The optimization apparatus of claim 2, for optimizing anelectronic component placement order used in a placement apparatus thatplaces electronic components on a circuit board by repeatedly performingtasks until all electronic components to be placed have been placed,each task being composed of: a feeder that supplies at least oneelectric component of at least one type of electronic component movingto a suction position of a placement head that includes at least onenozzle, and the placement head picking up at least one electroniccomponent from the feeder and placing the at least one picked upelectronic component on a circuit board, the optimization apparatusfurther comprising: a task information storage unit operable to storetask information for each task, each task information including (a) aplacement order of electronic components in the task, (b) placementpositions, each of which indicates where a different one of theelectronic components is to be placed, and (c) a feeder positionindicating a position of the feeder that supplies the electroniccomponents; a first generation unit operable to generate an X coordinatelist by rearranging the task information for all tasks so as to be indescending order of X coordinate of placement position of an electroniccomponent last in the placement order in each task information; a secondgeneration unit operable to generate a Z coordinate list by rearrangingthe task information so as to be in ascending order of a greatest feederposition in each task information; and an assignment unit operable toalternately select a task from a top of the X coordinate list and a topof the Z coordinate list in the stated order, and assign each task aposition in the placement order according to an order in which the taskswere selected.
 13. The optimization apparatus of claim 2, for optimizingan electronic component placement order used in a placement apparatus inwhich a feeder that supplies at least one electronic component of atleast one type of electronic component move to a suction position of aplacement head, and the placement head picks up electronic componentsfrom the feeder and places the electronic components on a circuit board,the optimization apparatus further comprising: a plane generation unitoperable to generate, for each electronic component type, an imaginarycomponent plane that includes positions in which electronic componentsof the type are to be placed, and arrange the generated component planesin a predetermined order; a rearrangement unit operable to rearrange thecomponent planes; an optimum path generation unit operable to generate,within each component plane, an optimum path that connects thecomponents on the component plane; and a 3D path generation unitoperable to generate a 3D path that connects the component planes, byconnecting the path within each component plane with the paths withinother component planes.
 14. The optimization apparatus of claim 2,wherein the first assignment unit includes: a component count storagesub-unit operable to store, for each type of electric component, acomponent count of the type of electric component; a placement timecalculation sub-unit operable to calculate (a) one of (i) with respectto each type of electronic component and each placement apparatus, areference placement time required for the placement apparatus to placeone electronic component of the type on the circuit board, and (ii) withrespect to each type of electronic component and each placementapparatus, a reference placement time required for the placementapparatus to perform a task to place one of the type of electroniccomponent on the circuit board, the task being a series of operationsfrom picking up the electronic component through to placing theelectronic component, and (b) with respect to each type of electroniccomponent and each placement apparatus and with use of the componentcount, a placement time required for the placement apparatus to placeall electronic components of the type on the circuit board; and anassignment determination sub-unit operable, for each placement apparatusand for each type of electronic component, to assign, with use of thecalculated placement times, the type of electronic component to one ofthe placement apparatuses.
 15. The optimization apparatus of claim 2,wherein the first assignment unit includes: a component count storagesub-unit operable to store, for each type of electric component, acomponent count of the type of electric component; a placement timecalculation sub-unit operable to calculate (a) one of (i) with respectto each type of electronic component and each placement apparatus, areference placement time required for the placement apparatus to placeone electronic component of the type on the circuit board, and (ii) withrespect to each type of electronic component and each placementapparatus, a reference placement time required for the placementapparatus to perform a task to place one of the type of electroniccomponent on the circuit board, the task being a series of operationsfrom picking up the electronic component through to placing theelectronic component, and (b) with respect to each type of electroniccomponent and each placement apparatus and with use of a tool thatsimulates operations of placement equipment based on the component countof each type of electronic component, a placement time required for theplacement apparatus to place all electronic components of the type onthe circuit board; and an assignment determination sub-unit operable,for each placement apparatus and for each type of electronic component,to assign, with use of the calculated placement times, the type ofelectronic component to one of the placement apparatuses.
 16. Theoptimization apparatus of claim 2, for changing tact informationrelating to the circuit board when the electronic components are placedthereon, and further comprising: a tact storage unit operable to storecircuit board tact information for each type of electronic component; anassignment storage unit operable to store, for each type of electroniccomponent, an assignment of the type of electronic component type to oneof the placement apparatuses; a selection unit operable to select, fromthe plurality of placement apparatuses, two adjacent placementapparatuses; an extraction unit operable to extract slowest tactinformation having a slowest tact among electronic component typesassigned to a placement apparatus that is located upstream-most of thetwo selected placement apparatuses; an extraction unit operable toextract tact information having a faster tact than the extracted slowesttact information from among electronic component types assigned to aplacement apparatus that is located downstream-most of the two selectedplacement apparatuses; and a replacement unit operable to replace theextracted tact information with the slowest tact information, in thetact information storage unit.
 17. An electronic component placementsystem composed of at least one placement apparatus that placeselectronic components on a circuit board, comprising: the at least oneplacement apparatus, and the optimization apparatus of claim 2, whereinthe at least one placement apparatus places the electronic components tothe circuit board in accordance with an assignment determined by theoptimization apparatus.
 18. A placement apparatus the places electroniccomponents on a circuit board, wherein the placement apparatus placesthe components on the circuit board in accordance with an assignmentdetermined by the optimization apparatus of claim
 2. 19. An optimizationmethod used in an optimization apparatus in an electronic componentplacement system further including two or more placement apparatusesthat place electronic components on a circuit board, the optimizationapparatus optimizing a placement order in which the electroniccomponents are placed on the circuit board by the placement apparatuses,the optimization method comprising: a first assignment step of assigningeach type of electronic component to one of the placement apparatuses,thereby determining a first assignment for each type of electroniccomponent; a first calculation step of calculating, for each placementapparatus, a first placement time required for the placement apparatusto place all electronic components assigned thereto according to thefirst assignments on the circuit board; a second assignment step ofselecting two placement apparatuses from the placement apparatuses,selecting, for each of the two selected placement apparatuses, one typeof electronic component that has been assigned to the placementapparatus, and determining a second assignment by swapping the twoselected types of electronic components between the two placementapparatuses; a second calculation step of calculating, for each of thetwo placement apparatuses, a second placement time required for theplacement apparatus to place all electronic components assigned theretoaccording to the second assignment on the circuit board; and an adoptiondetermination step of determining adoption of one of the firstassignment and the second assignment that enables a shortest placementtime, by comparing a greatest first placement time and a greatest secondplacement time from among the first placement times and the secondplacement times calculated for the two placement apparatuses selectedfor interchanging by the second assignment unit.
 20. An optimizationprogram used in a computer in an electronic component placement systemfurther including two or more placement apparatuses that placeelectronic components on a circuit board, the computer optimizing aplacement order in which the electronic components are placed on thecircuit board by the placement apparatuses, the optimization programcomprising: a first assignment step of assigning each type of electroniccomponent to one of the placement apparatuses, thereby determining afirst assignment for each type of electronic component; a firstcalculation step of calculating, for each placement apparatus, a firstplacement time required for the placement apparatus to place allelectronic components assigned thereto according to the firstassignments on the circuit board; a second assignment step of selectingtwo placement apparatuses from the placement apparatuses, selecting, foreach of the two selected placement apparatuses, one type of electroniccomponent that has been assigned to the placement apparatus, anddetermining a second assignment by swapping the two selected types ofelectronic components between the two placement apparatuses; a secondcalculation step of calculating, for each of the two placementapparatuses, a second placement time required for the placementapparatus to place all electronic components assigned thereto accordingto the second assignment on the circuit board; and an adoptiondetermination step of determining adoption of one of the firstassignment and the second assignment that enables a shortest placementtime, by comparing a greatest first placement time and a greatest secondplacement time from among the first placement times and the secondplacement times calculated for the two placement apparatuses selectedfor interchanging by the second assignment unit.
 21. Ancomputer-readable recording medium having recorded thereon anoptimization program used in a computer in an electronic componentplacement system further including two or more placement apparatusesthat place electronic components on a circuit board, the computeroptimizing a placement order in which the electronic components areplaced on the circuit board by the placement apparatuses, theoptimization program comprising: a first assignment step of assigningeach type of electronic component to one of the placement apparatuses,thereby determining a first assignment for each type of electroniccomponent; a first calculation step of calculating, for each placementapparatus, a first placement time required for the placement apparatusto place all electronic components assigned thereto according to thefirst assignments on the circuit board; a second assignment step ofselecting two placement apparatuses from the placement apparatuses,selecting, for each of the two selected placement apparatuses, one typeof electronic component that has been assigned to the placementapparatus, and determining a second assignment by swapping the twoselected types of electronic components between the two placementapparatuses; a second calculation step of calculating, for each of thetwo placement apparatuses, a second placement time required for theplacement apparatus to place all electronic components assigned theretoaccording to the second assignment on the circuit board; and an adoptiondetermination step of determining adoption of one of the firstassignment and the second assignment that enables a shortest placementtime, by comparing a greatest first placement time and a greatest secondplacement time from among the first placement times and the secondplacement times calculated for the two placement apparatuses selectedfor interchanging by the second assignment unit.